タグ

programmingとシステムに関するedo_m18のブックマーク (5)

  • 全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita

    言いたいこと 重要なファイルを書くときは、予期しないOSシャットダウンなどを考慮した書き方にする必要があるというお話。 お作法を知らないと、中途半端なファイルや空ファイルが生成され、システム起動時や連携システムで致命的なことになる。 例としてC言語/Java/Python/JavaScript(node.js)を挙げるが、ほぼすべての言語で対策する必要あり。 背景 番運用されているソフトウェアが起動しなくなるという致命的な不具合が発生した。 ログやコンフィグファイルを収集・解析したところ、コンフィグファイルがぶっ壊れていた。 コンフィグファイルは起動時に読まれるが、必要に応じて書き込まれることもある。 コードを追っていくと、書き込み処理中に強制終了したりすると、中途半端に書かれる可能性があることに気づく。 使い終わると電源がぶち切りされる運用をされており、奇跡的にタイミングが重なったのか

    全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita
  • 1行直すだけってそんなに大変なの?

    どこの会社でも「1行直すだけでしょ? そんなに大変なの?」ということを何度も聞かれる (もしくは言外にそのニュアンスを含められる) ので毎度説明するのだけれど、「いや、そう思うだろうけれど大変なんですよ」以外に答えられていなくて、自分でもあまりうまい答えではないなと感じるのでまじめに考えてみた。 まず大前提として1行を修正するのに当に言われるがままにその1行を直すのであればそれは作業者で世の中にエンジニアなんて職業はいらないわけで、ぼくらの付加価値は1行を直すときに1行の外にあるものを想起できるから価値があるわけです。 じゃあ、どんなことを考えているかというと、まずたいていそんなすぐに安請け合いできないシステムというのは1行を直すときに影響を受ける行数というのは10行や20行ではないことが多い。そこで影響範囲を考えます。途端にこれが1万行になったりする。すると、1万行へ影響が出るのにこれ

    1行直すだけってそんなに大変なの?
    edo_m18
    edo_m18 2018/01/15
    ブコメ見ると色々な意見があるなぁ。経てきた環境、立場によってまったく違う意見で面白い。そして記事の内容はまったくもって同意w
  • 「基本設計を分担してはいけない」わけねーよという話 - novtan別館

    こういう話をするときに前提というか設定というかそういうのが雑なままで進めるとさっぱり話のフォーカスが合わない。という話になっている時点で「そりゃ分担したら上手く行かないよな」と思ってしまうわけで、つまりこの話は定量的・定性的な分析ではなくて個人の体験談なんだろうな、と思った次第。 私がとくに不思議に思うのが、基設計を何人もの要員で分担するやり方だ。DB設計と機能設計と業務設計の担当を分けるとか、サブシステム毎に担当を分けるといった体制がしばしば敷かれる。詳細設計の段階でというのならまだわかるが、基設計でそれをやってはいけない。 基設計を分担してはいけない: 設計者の発言 もういきなりわからないのが「何人もの」で、1人じゃないとダメなのか、何人までならいいのかとかそういうどうすべきかの話がわからず、DB設計がインフラの話なのかモデルの話なのかネーミングの話なのかもわからない。え、それ全

    「基本設計を分担してはいけない」わけねーよという話 - novtan別館
  • ITエンジニアなら知っておきたい、今更聞けないアルゴリズムの種類一覧 - paiza times

    Photo by Oferico 皆さんはアルゴリズムやデータ構造について勉強したことはありますか?そして、基的なアルゴリズムについて、どのようなものがあって、どのようなときに使うとよいかといったことを説明することができますか? 仕事をしていると、プログラミング言語等の勉強や業務に忙しくて、正直アルゴリズムどころではないという場合がほとんどでしょう。しかし、いつか勉強しようと思っていたけど、基的なアルゴリズムにどんなものがあるのかなんて今更聞けないな……ということもあるかと思います。 今回はそんな方に向けて、基的なアルゴリズムの一部の概要に加え、アルゴリズムの勉強に役立つサイト、書籍をご紹介したいと思います。 ■アルゴリズムを学ぶ意味 例えば、ソート等については、通常はすでにソート関数があるので、自分で作らなくても済む=アルゴリズムも勉強しなくていいと思ってしまうかもしれません。しか

    ITエンジニアなら知っておきたい、今更聞けないアルゴリズムの種類一覧 - paiza times
  • 【ノンプログラマ向け】プログラマの仕事内容を理解する(1) ~「テスト」という工程が必要な理由 | きのこる庭

    前書き 「一緒に働いている以上、プログラマのことを理解して仕事をしたい」そう考えている企画・ディレクションの方は経験則的に少なくない。 ノンプログラマから見て、プログラマの仕事はイメージが湧きづらく、何故その工程にそこまでのコストをかける必要があるのかわからない事が多い。 プログラマは作業の必要性を説明してくれるかもしれないけれど、専門用語も多いしイマイチピンとこなかったりする。 ここで重要なのはまさに「イメージ」だと思う。すなわちイメージを提供するための良質なメタファーだと思う。メタファーが良質であれば より直感的に理解できる。 実際メタファーの力はバカにならない。「Chef」も「Jenkins」も それぞれ 統一的な世界観が学習者の直感的な理解を後押ししてくれる。 というわけで、今回から数回に分けて なるべく「技術的な話」をせずに イメージを想起しやすいストーリーを導入することで プロ

    【ノンプログラマ向け】プログラマの仕事内容を理解する(1) ~「テスト」という工程が必要な理由 | きのこる庭
    edo_m18
    edo_m18 2014/11/17
    物事を理解する上で元となるイメージはとても大事。
  • 1