Agile Manifestoには以下のように書いてあります。 動作するソフトウエアは包括的なドキュメントにまさる ともするとドキュメント軽視と取られかねない宣言です。この宣言を誤って解釈してドキュメントはいらないとなる場合もあるかもしれませんが筆者はそれは間違いだと思っています。この宣言では包括的なドキュメントよ
いささか刺激の強い題名は日経クロステック編集部が付けてくれたものだが若手のエンジニアを批判する意図はまったくない。題名にある「若手エンジニア」はかつての私だからである。 50代に突入した現在の私は、いわゆるWeb系企業に所属し、業務システムを含むバックエンド領域の設計と開発に従事している。もともとはPCのデスクトップアプリケーションを開発するプログラマーとして仕事を始め、途中から業務システムの設計・開発に移った。そのとき若手エンジニアであった私は「業務システムになぜRDB(リレーショナルデータベース)が必要か」、よく分からなかった。 RDBを使いこなせなかったわけではない。業務システムを使う利用者から要求を聞き、画面をつくる。部署によって要求は異なるから複数の画面ができる。画面で入出力されるデータ項目を集め、正規化してRDBにまとめ上げることはやれていたし実際につくった業務システムはきちん
プログラミングが好きなエンジニアの渡辺です。 先日 TechMTG という社内のエンジニアミーティングの場でお話させて頂いたことを書いてみようと思います。 表題の「正解にする力」というのは様々な意思決定に適用出来るものとして考えていますが、今回は技術選定という観点でお話します。 技術選定というと、世の中のデファクトだとか、新しい技術だとか、社内で実績のある枯れた技術とか色々な理由や基準で選ぶのが良いと、至るところで言われていると思います。 選定時に議論が平行線にならないように、判断基準を設けるべきというのもあるでしょう。 これらは重要であり、検討、準備することは必要ですが、それに加えて「正解にする力」というのも重要なのではないか?という提案です。 まず、組織における技術選定とは「正解を選ぶ」ことではないと思っています。 これはその技術選定結果はその人個人についてまわるのではなく、組織として
アプリケーションエンジニアのid:tkzwtksです。今回はバッチ処理の冪等性(べきとうせい、idempotence)について、どう考えるか/考えてきたかをご紹介します。 このエントリを書くきっかけとなったのは、はてなエンジニア有志で定期的に開催しているCloudNative推進会です。ここでは、社内のシステムをクラウドネイティブにしていくため「クラウドネイティブなシステムとはどういうものか?」を考えており、この会での「クラウドネイティブなバッチ処理」の議論も踏まえつつ説明していきます。 バッチ処理における冪等性とは メッセージ送信の信頼性を考慮する クラウドネイティブで可用性を高めるために どのような場合に冪等性を考慮すべきか 冪等な実装における3つのケーススタディ ケース1: n分前までに更新されたレコードを集計する ケース2: DB上の対象レコードを更新する ケース3: 対象ユーザー
先日、某VC投資先の方々に対して、「ソフトウェアエンジニアの採用時にコーディングテストをやりたいがどうしたら良いか?」ということについて語ってきたので、こちらにもエッセンスをまとめたいと思います。 コーディングテストの目的 なぜ我々はコーディングテストをやるのでしょうか? もちろん、第一目的はソフトウェアエンジニアの採用候補者のスキルを見極めるためです。 過去に、経歴も良さそう、技術的な議論もスムーズにできる、なのにコードが書けない候補者に、私は何度か出会っています。「コードが書けない」のレベルは、(ある程度易しい)論理をプログラムに翻訳できず、まともな if 文が書けないというレベルを言っています。熟練者でもド・モルガンの法則をうっかり間違えるぐらいはあると思いますが、そういう話ではありません。コードが書けない候補者は、そもそも条件が書き下せません。このような候補者を雇ってはいけません。
介護や医療、ヘルスケア、シニアライフなどの4つの領域で高齢社会の情報インフラを構築している株式会社エス・エム・エスで技術責任者をしている @sunaot です。2015年2月に入社して以来、技術責任者として開発組織づくりやサービスの内製化を進めてきました。 「『継続性アーキテクト』という生き方」というタイトルをつけていますが、タイトルで名詞化しているのは釣りで、アーキテクトの仕事について書いています。これは私がアーキテクトという仕事の可能性について考える中で、「継続性」に注目するとその仕事の価値がより発揮されていくのではないかと考えた内容をまとめたものです。 アーキテクトが抱える葛藤 私は役割柄、採用などでソフトウェアエンジニア(以下、エンジニア)と面談をする機会が多く、年に約200人くらいの方と話をしており、キャリアについて話を聞く機会も多くあります。その中で多くの方のキャリアのゴールと
RBACの基礎 業務システムの権限制御の基本形はロールベースアクセスコントロール(RBAC)です。簡単化すると、以下のようなモデルです。 Subject(システムユーザ)は、複数のRole(ロール)を持っている。 Role(ロール)は、Permission(権限)のセットからなる。 Permission(権限)は、オペレーション(許可される操作)のセットからなる 具体的に、Redmineでの例をみてみましょう。 ユーザにはデフォルトで「管理者」「開発者」「報告者」のロールが割当可能である。 「報告者」ロールは、「Add Issues」の権限をもつ。 「Add Issues」の権限をもつユーザは、「Issueの新規作成」ができる。 このモデルをRedmineでは、以下のように表現しています。 Redmineは1人のユーザを、複数のプロジェクトに異なるロールでアサインすることができるので、上記
GMOペパボ株式会社で執行役員 技術部長 兼 VPoE(VP of Engineering)を務める柴田博志(@hsbt)と申します。CTOの栗林健太郎さん(@kentaro)と共にGMOペパボのエンジニアをまとめています。 技術的負債、どこの組織にもありますよね。どうやって返済していますか? 会社として技術的負債にどう立ち向かうべきか、そのコツは人のマネジメントにあると考えています。今回はflexy読者の皆様と技術的負債を考えていこうと思います。 技術的負債とは: 技術的負債とは、開発の中で先送りにされる、ドキュメンテーション不足、保守コストのかかるテストコードや不必要に複雑なコードなどを指します。技術的負債が蓄積してしまうと、将来的に重大な問題を引き起こしたり、対応コストが雪だるま式に増えてしまいます。すべてのコードに技術的負債が発生する可能性があり、組織はどこかのタイミングで技術的負
ここは、Martin Fowler's Blikiの日本語翻訳サイトです。Martin Fowler氏本人の許可を得て公開しています。データはGitHubで管理していますので、どなたでも翻訳に参加することが可能です。 ※現在、移行中につき、Markdown形式になっていないものが多々あります……。PRいただけると大変ありがたいです。 API design / agile / agile adoption / agile history / application architecture / application integration / bad things / build scripting / certification / clean code / collaboration / computer history / conferences / continuous deliv
Robert Martin (a.k.a. ボブおじさん) による、 The Clean Architecture の翻訳です。似たようなアーキテクチャである ヘキサゴナルアーキテクチャ も翻訳したので参考にしてください。 この記事を翻訳して公開したことは 8th Light, Inc. に報告済みです。いまのところ苦情は来ていません。 ここ数年以上、システムのアーキテクチャに関する実にさまざまなアイデアを見てきた。これには、次のものが含まれる: Hexagonal Architecture (別名 Ports and Adapters) by Alistair Cockburn。Steve FreemanとNat Pryceが、Growing Object-Oriented Software というすばらしい本で採用した。 Onion Architecture by Jeffrey Pa
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
初めに 以下の訳文です。カーネルレシピのGreg Kroah-Hartmanの話のJonathan Corbetによる要約です。ライセンスは原文に準じます。 https://lwn.net/Articles/702177/ (LICENSE: https://creativecommons.org/licenses/by-sa/4.0/) 見出しは内容の整理のために訳者が勝手に付加したものです。 ご指摘等ありましたらコメント、編集リクエストでどうぞ。 参考: パッチ投稿のフローについては同じGregによる以下の記事(翻訳)が詳しいです。 http://blog-ja.intransient.info/2010/09/linux.html なぜカーネル開発ではいまだにEmailを使うのか? 古臭い遺物? 世の中には見栄えの良い開発ツールやサイトが溢れていますが、カーネルプロジェクトはEmai
どうも!アプリケーション基盤チームの@yokotasoです。 3月11日にBattle Conference U30 というイベントでお話をさせていただきました。 準備がてら作成したディスクリプションを公開します。 キーノートはSpeakerDeckからどうぞ!こちらも参考にしていただければ、嬉しい限りです。 では、どうぞ! 障害にすてるところなし サイボウズ株式会社の横田です。 「障害に捨てるところなし」というタイトルで少しお話させていただきます。お手柔らかによろしくお願いします。 運用障害の話 まずはじめに、今回のお話をするにあたりまして 運用障害でご迷惑をおかけしたみなさま、大変申し訳ありません。 より快適に利用いただけるサービスを目指しまして、対策・改善をおこなっております。 これからも、弊社製品をよろしくお願いいたします。 クラウドの規模と稼働率 障害の話をする前に、サイボウズの
こんにちは。アプリエンジニアの五味です。 2017年4月にリクルートホールディングスの新卒Web採用枠で入社した新卒社員のうち、21名がリクルートテクノロジーズに配属となりました。(いらっしゃい!) リクルートテクノロジーズでは「ブートキャンプ」と呼ばれる新卒社員向けの技術研修を3か月間実施しています。 もともと高い能力を持つ彼・彼女らですが、「これからのリクルートをリードしていく存在」になって欲しいという期待を込め、プロとしての重要な立ち上がり期を支援しています。 今年からは社外講師の既存プログラムに加え、より実践的な内容を求める経験者をターゲットに、総勢12名の現場エンジニアが担当する特別講座を開催しました。 各分野のスペシャリストがこれまで現場で培ってきた「本当に必要な生きた知識・技術」のインプットは、彼・彼女らの成長を加速させ、これからのエンジニア人生の礎になってくれるものと僕らは
『ふりかえり』のやり方を変えてみました٩( ´ω` )و 私たちのチームでは、スプリントのふりかえりにKPTを採用していたのですが、あまりうまくいっていませんでした。 😥『ふりかえり』がうまくいかない 『ふりかえり』にて、以下のようにKPTをやっていました。 個人個人が思いついたことをK/Pとして書き出す 全体でそのK/Pを共有する とりあえず目についたK/Pについて話あい、Tを決める しかし、このやり方ではチームの問題がポイントにフォーカスされてしまい、スプリント全体を見ないまま『ふりかえり』を進めてしまっているという実感がありました。 (ひとりがKPTを出したときに「そういえば、そういうこともありましたね。」という発言が多々出ていました。) また、指標値の決定や測定をしておらず、振り返りによって問題が改善できているか把握できていませんでした。 いよいよチームとしてのベロシティも下がり
プログラマが知るべき97のこと大人気の書籍『プログラマが知るべき97のこと』のエッセイを無料で公開中!すべてのプログラマにおすすめの本がウェブで読めるようになりました。 エッセイ一覧分別のある行動関数型プログラミングを学ぶことの重要性ユーザが何をするかを観察する(あなたはユーザではない)コーディング規約を自動化する美はシンプルさに宿るリファクタリングの際に注意すべきこと共有は慎重にボーイスカウト・ルール他人よりまず自分を疑うツールの選択は慎重にドメインの言葉を使ったコードコードは設計であるコードレイアウトの重要性コードレビューコードの論理的検証コメントについてのコメントコードに書けないことのみをコメントにする学び続ける姿勢誰にとっての「利便性」かすばやくデプロイ、こまめにデプロイ技術的例外とビジネス例外を明確に区別する1万時間の訓練ドメイン特化言語変更を恐れない見られて恥ず
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く