タグ

関連タグで絞り込む (266)

タグの絞り込みを解除

DevelopmentとProgrammingに関するluccafortのブックマーク (85)

  • ソフトウェア設計の言語化スキルを磨くこと|qsona

    たとえば設計について議論するときや、コードレビューで指摘をするときに、「なぜその設計が良いと思うのか?」について言語化するのが上手だと、確実に良いことがあります。 言語化が上手にできるかが一つの壁なのではないか、と感じることもあります。後輩を育てたりチームをリードするような立場になると、特に必要性を感じるのではないかなと。 自分も、うまく言語化できたことですんなり議論を進められていると感じることは多いですし、逆に直感的な良さを言語化できなかったことで直感に反する方向に進んでしまい、結果よくなかったというような苦い経験もあります。 前提: ソフトウェア設計の良さは静的には決まらない良い設計・良いコードとは何なのか。という質問に一言で答えるなら、「保守性が高い」ことだと思います。つまり、今後の変更・拡張を、高速にバグが少なく行えるような状態が良い設計・良いコードです。(一般的にはこれで70%く

    ソフトウェア設計の言語化スキルを磨くこと|qsona
    luccafort
    luccafort 2019/07/17
    「マジックナンバーを定数化しろ」と自分がいうときはそのマジックナンバーが自分たちではコントロール出来ないときにいうかな。法律で決まってるけど自分たちでコントロールできないなら定数化する。
  • 「悪い方が良い」原則と僕の体験談|Rui Ueyama

    ソフトウェアの世界には「悪い方が良い」原則という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きっぽい悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカの現行バージョンのオリジナル作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイルやDLLを作るのに使用される。lldはプロダクトとしてはかなり成功していて、標準のシステムリンカとして採用しているOSがいくつかあったり、GoogleやFacebookなど皆が知っているような大規模サイトの中で広く使われていたりする。 現在のlldは2世代目で、第1世代のlldは僕がプロジェクトに参加する前から存在していたのだけど、数年前にそれを捨てて一から書き直すということになっ

    「悪い方が良い」原則と僕の体験談|Rui Ueyama
    luccafort
    luccafort 2018/04/06
    こういうのもある意味で「done is better than perfect」なのかなと読んでいて思った。悪いほうがいいデザインで最初からやってたらまた別の問題が起こった気がするので結果だけ見たら良かった気がする。
  • 技術的負債のパターンと悪影響・原因・返却方法について考える - $shibayu36->blog;

    先日飲み会で技術的負債についての雑談をしていた。結構いろいろな側面の話をしていたのだけど、技術的負債って一括りにしているのが今はあんまり良くなくて、負債の性質によって技術的奨学金、技術FX技術的年金などと言葉を変えると良いのではみたいな半分冗談で会話をしていた。 いろんな問題が技術的負債という一言にまとめられてしまっているので、負債の性質に合わせて、技術的奨学金、技術FX技術的年金、など用語を分けると良いのではないか、という話をした— 趣味はマリンスポーツです (@hitode909) 2018年3月27日 技術的負債について - hitode909の日記 それで技術的負債のパターンを見つけて、それによりどういう悪影響があるか、それがなぜ起こるのか、どう返却するかについて考えておくと良いのではと思ったので、今日思いついた3つのパターンをメモしておく。 思いついたパターンは3つ。 変

    技術的負債のパターンと悪影響・原因・返却方法について考える - $shibayu36->blog;
    luccafort
    luccafort 2018/03/30
    ヒヤリハットパターン、だいたい問題が発覚したときに致命傷級のダメージをおうため後回しにしがちだけどきちんと新機能開発と天秤にかける必要があると最近思っている。変更困難パターン、みんなの知見が知りたい。
  • ソフトウェア開発技術者が知っておくべき5つの法則 - スタジオ・アルカナ技術ブログ

    はいどうも~。 日はhidetarouの番ですが休業中のため代打でしゃしゃり出たエンジニア吉田です。 「○○○な●●つの○○○」なんて感じのタイトルを付けると、 なんだか興味が惹かれるというのを目にしたので活用してみました。 ※個人的にはそうでもない気がしている。 というわけで、今回はソフトウェアに関係しそうな「法則」を5つほど紹介し、 それをソフトウェア開発業務にどう生かしていくかを考えてみます。 日ご紹介する法則は以下の5つです。 ブルックスの法則コンウェイの法則パーキンソンの法則マーフィーの法則ハインリッヒの法則 でわでわ、早速。 ブルックスの法則 「遅れているソフトウェアプロジェクトへの要員追加はさらに遅らせるだけだ」 これは、IBMのOS/360(メインフレームOS)の開発者であるフレデリック・ブルックスが 名著「人月の神話」で提唱したプロジェクトマネジメントに関する法則です

    luccafort
    luccafort 2018/03/05
    エンジニアが就職時に知っておくべきことってこういうことかなーと思い出してた。就職時にコンウェイの法則知ってると臭う会社を回避するのに役立ちそう。しかしこの記事7年前なのに人類の進化とは…って気持ちだ。
  • そろそろコードレビューそのものの必要性について考えるときがきているのかもしれない - タオルケット体操

    技術ブログの方に書くか迷ったのですが、かなりポエムの類な文章になりそうなのでこちらに書きます。 ちょっと前にバズったこちらの記事 medium.com に触発されました。 ちなみにコードレビューに関する話としてはまだ僕が色々と手探りだった3年前にもこんなことを書いていたようです。3年前の自分の考えに触れられるブログって面白いなという気持ちとこいつどんだけ軽率な文章書いてんだよという気持ちが合わさり甘酸っぱい気持ちが生み出されました。 hachibeechan.hateblo.jp 当時と今では日全体の技術的トレンドも変わっていますし、そもそも僕の所属している会社も違います。今の会社ではGitHubを使っており、コードレビューが当然のフローとして組み込まれています。 そしていま改めて当時のブログを読み返したのですが、びっくりするほどコードレビューに対する僕の考えが変わっていないので、改めて

    そろそろコードレビューそのものの必要性について考えるときがきているのかもしれない - タオルケット体操
    luccafort
    luccafort 2018/02/01
    実装設計に関してA/Bテストして何故その実装を採用したのか?という経緯ログが残るのが一番のメリットかなーと思ってる。こう実装したけどベターな実装でないみたいなの実装中は気づきにくい。
  • 1行直すだけってそんなに大変なの?

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

    luccafort
    luccafort 2018/01/12
    "それをきっかけに会社にとって一番よい形を技術という自分の強みを活かして考えるのが仕事です。"めっちゃわかる。1行のコードの裏に多くのコードがあるケースと本当に1行のケースがあるのが難しい。
  • イマドキのJavaScriptの書き方2018

    PySpa統合思念体です。これからJavaScriptを覚えるなら、「この書き方はもう覚えなくていい」(よりよい代替がある)というものを集めてみました。 ES6以降の難しさは、旧来の書き方にプラスが増えただけではなく、大量の「旧来の書き方は間違いを誘発しやすいから非推奨」というものを作り出した点にあります。5年前、10年前のやウェブがあまり役に立たちません。なお、書き方が複数あるものは、好き嫌いは当然あると思いますが、あえて過激に1つに絞っているところもあります。なお、これはこれから新規に学ぶ人が、過去のドキュメントやコードを見た時に古い情報を選別するためのまとめです。残念ながら、今時の書き方のみで構成された書籍などが存在しないからです。 たぶん明示的に書いていても読み飛ばす人はいると思いますが、すでに書いている人向けではありません。これから書くコードをこのスタイルにしていくのは別にいい

    イマドキのJavaScriptの書き方2018
    luccafort
    luccafort 2017/12/27
    ちょうどJSの勉強を再入門しているところなので非常にわかりやすくてよかった。
  • ソフトウェア開発で学んだが使わなかったもの

    開発手法など、一通り学んだが実際に使っていないものは多少なりあると思う。それらについて掘り起こしてみたい。 スクラム開発認定スクラムマスター研修には研修会場ホストという立場で数回立ち会った。認定外の研修も幾つか受講した記憶がある。書籍もそれなりに読み、Scrum Gathering Tokyoなどのコミュニティにも顔を出し、まあそれなりに色々考えて捉えてきた。でも、自分のチームでは使っていない。スクラム開発というアイデアに矛盾があるからだ。 そもそもスクラム開発ではチームの自律的な行動を良しとしており、それに対する”フレームワーク”を提供しているということになっている。イテレーション、バックログ、ふりかえり、デイリーミーティング(いまだに「朝会」って言ってる人いないよね?)、そしてそれらのお作法。誰が言ったかわからないが、それぞれの作者の意図を察するためには「守」が大事らしい。守破離の「守

    luccafort
    luccafort 2017/12/01
    同意は出来ないけどチームに馴染まないと感じたのなら無理に導入する価値はないし学んだうえでやらないと判断したのならそれは正しいと思う。ただトップダウンのくだりは主張したいことが理解できなかった。
  • https://frasco.io/why-you-should-stop-using-git-rebase-535fa30d7e25

    https://frasco.io/why-you-should-stop-using-git-rebase-535fa30d7e25
    luccafort
    luccafort 2017/11/25
    まず大前提としてgit rebaseして歴史を直線的に保つことの意義がぼくには理解できない。歴史を改ざんするのはよくないとぼくらはSFとドラえもんから学んだはずなんだ。
  • Ayo.js について - from scratch

    Ayo.js とは 「Node.js の fork です。」と言ってもまだできたばかりで正直このタイミングで記事にしてもまだ語ることはそんなに多くないです。 ただし、JavaScript界隈が騒ぎになりかけていることは確かです。日でも発言が増えてきたので自分なりにまとめて今時点での話をしようと思います。 ちなみに読み方は好きに読んでくれ、と言われてます。 「アイ・オー」でもいいし、「エイ・ヨー」でも良いとのことです。ネーミング的には昔あった io.js fork騒動を想起させるネーミングになってます。もしも io.js についてご存じない方もいるのであれば、こちらをご参照ください。 yosuke-furukawa.hatenablog.com Ayo.js の目的 https://github.com/ayojs/ayo/blob/zkat/values/VALUES.md ここを見ると

    Ayo.js について - from scratch
    luccafort
    luccafort 2017/08/28
    LibraOfficeとOpenOffice紛争みたいな話かー。今回は技術的な争点ではなく政治的な争点だから合流するには相当厳しい道程を歩むしかないんじゃないかなーとは思う。
  • 「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog

    はてなのアプリケーションエンジニアのid:shiba_yu36です。社内技術勉強会で「新機能作成時に開発ブランチに細かくmergeしていく戦略」という発表をしたので、資料を公開します。 speakerdeck.com 以下、簡単に文字でまとめておきます。 戦略 ユーザーに新機能が見えないようにする工夫をし、新機能のbranchもどんどん開発ブランチにmergeしていく mergeされたものは随時番にリリースされるが、ユーザーに見えない工夫をしているので問題なし PRは可能な限り細かくする 機能が完成したら最後にユーザーに新機能を見えるようなPRを作り、mergeしてリリースする なぜこの戦略を使うのかいろんな失敗を経験して、この戦略を最近使っている。 失敗パターンその1: 巨大PRパターン 失敗パターンその2: 新機能リリースブランチパターン 失敗パターンその1: 巨大PRパターン 新機

    「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
    luccafort
    luccafort 2017/08/08
    例えばA機能を実装しようとしたときに先にB機能を実装したことでA機能の意味がほぼなくなってしまってissue自体をCloseされたら場合各実装をrevertしていくのだろうか?あと入れ替えミスとかが怖い。
  • 一日8時間、60日間ペアプロしてみて思った日常ペアプロのコツ. 一日だいたい8時間、今日まであわせて60営業日くらい、固定ペアのペアプログラミン… | by Naohiro Oogatta | Medium

    一日だいたい8時間、今日まであわせて60営業日くらい、固定ペアのペアプログラミングで新規アプリのクライアントからサーバまで開発してみました。チームにエンジニアがちょうど二人だったので。 もはや日常がペアプロです。ペアプロ以外でやってるのは簡単なバグ修正やちょっとした環境整備で、あとはすべて二人で開発しています。ちなみにまだまだ続いています。狂気です。 いい大人が二人集まって狂気を選ぶことになったわけは、成果も出てないしまだ書けません。でも今って、ペアプロやモブプロがブームだって聞きました。それじゃあアホみたいにやってる人間としては黙ってられないです。基的なことはおいといて、とりあえずこれだけはってつくづく思ったのとか、ペアプロを有意義に長く続けるコツをまとめてみました。 (ちゃんとした話は ペアプログラミングの5W1HとFAQ / 5W1H and FAQ of Pair Program

    luccafort
    luccafort 2017/07/20
    もうかなり前だがペアプロを通常勤務時間にしていたことがあったけどめっちゃつらかった。それ以降ペアプロ=疲れるしつらいものというイメージだったがあれはチームの問題だったのか。今考えると確かにという気持ち
  • エンジニアの信頼を得るには良質なアウトプットが必要な話 - そーだいなるらくがき帳

    先日、僕が大好きでリスペクトしてるソフトウェアエンジニアさんたちと意見交換会(呑み会)中にソフトウェアエンジニアの信用と信頼について話題になったのでメモ。 僕が「このソフトウェアエンジニアは信用できる」っていうのはどういう指標がありますか?って質問した時に出た意見としては コードに対して何らかの貢献をしている 新規プロダクトの開発など OSSのメンテナンスなど(パッチを送るなど) 自分の持つプロダクトに対する反応など が出てきた。 これらのような「良質なアウトプット」を定期的に行う頻度も大事だよねという感じ。 なるほど、確かにって思ったのだけど更にその中で良質なアウトプットとは何かという話題になった。 ソフトウェアエンジニアの属性 ソフトウェアエンジニアには得手不得手がある。 言語だったりレイヤーだったりで好き嫌いも含めて得手不得手がある。 更にもっと言えば「プロダクトの成長段階」でも得手

    エンジニアの信頼を得るには良質なアウトプットが必要な話 - そーだいなるらくがき帳
    luccafort
    luccafort 2017/06/04
    最近よく聞くpodcastの #しがないラジオ 聞いててこの手のことを考える機会が多くなった。 良質なアウトプットをするためには良質なインプットが10倍くらい必要だし精神と時の部屋マジで欲しい。
  • 技術フェローが名古屋を流していたのでペアプロの手ほどきを受けたら捗った - 弥生開発者ブログ

    Misoca開発チームの黒曜(@kokuyouwind)です。 先日大須演芸場で開催された名古屋Ruby会議03ではTwitterでひたすら実況していました。大喜利が思った以上に大喜利で面白かったです。 お題「みなさんRubocopになってもらって『直しました』といってください。『何を直したんですか?』と聞くので、直したところを答えてください」 須藤さん「直しました」「何を直したんですか?」「RSpecをTestUnitにしました」 #nagoyark03— 黒曜@技術書典2 か-13 (@kokuyouwind) 2017年2月11日 流しの技術フェローに教わったペアプロのコツ 先日、弊社技術フェローのkakutaniさん(@kakutani)からペアプログラミング(以下ペアプロ)のコツを教わり、社内でのペアプロ機運が高まっています。 今回はkakutaniさんから教わった内容のまとめと

    技術フェローが名古屋を流していたのでペアプロの手ほどきを受けたら捗った - 弥生開発者ブログ
    luccafort
    luccafort 2017/02/18
    かつてペアプロめいたなにかをやったことがあるんだけどもとにかくめちゃくちゃ疲れるんだよね。とはいえ他人からのWhy?があることで気づきを得たりとかコードの品質とかは上がってた気がする。またやってみたいな。
  • Modern JavaScript概観、そしてElectronへ | さにあらず

    この一か月分の学習成果を整理したリポジトリを作ったので、その成果についてまとめておく。 作ったサンプルプロジェクトだけを手軽に欲しければ、このリポジトリを clone してほしい。 taichi/js-boilerplatemaster ブランチには、ミニマムな JavaScript 開発環境がサンプルコード付きで入っているfrontend ブランチには、React/Redux/webpackなウェブアプリケーション用の開発環境が入っているデフォルトブランチにしてある electron ブランチには、frontend ブランチの内容に加えてElectronでアプリケーションを開発するための環境が入っているはじめに#最近の JavaScript について#僕は仕事として JavaScript を書いている訳ではないけども、この半年くらいの間にちょっとしたツールならいくつか作った。どちらも便利

    Modern JavaScript概観、そしてElectronへ | さにあらず
    luccafort
    luccafort 2017/01/24
    めちゃくちゃ超大作だったけどその労力と内容に見合った作品に仕上がっている。でもまだこれで開発環境が出来たという話しなので続編を心待ちにしている。めっちゃ丁寧に調べてて好感持てる。
  • 量産型プログラマを撲滅したい

    プログラマの生産性の差は、出来る人と出来ない人で10倍とも100倍とも言われる。そんな馬鹿な、と思われるかもしれないが、事実だ。 むしろ、一緒に働かせると、出来るプログラマが、下手に作られたプログラムの修正をしなければいけなくて、全体の生産性を落とすことになる。 つまり、出来ないプログラマはチームで働くと、生産性をマイナスにするのだ。厳しいことを言えば、いない方がマシなのである。 ソフトウェア開発にの手はいらないのだ。 では、出来ないプログラマとはどんな人たちか。 コピペで書くプログラマだ。他で動いているプログラムをコピペして、なんとなく直して書いているプログラマだ。 なぜプログラムが動くのか、どう書けば動くのか、わかっていない。 ただ沢山のプログラムを書くだけの量産型プログラマだ。こういう人のプログラミングは、デバッグさせてみて、横で見てるとすぐにわかる。 まず、エラーメッセージを見な

    luccafort
    luccafort 2017/01/13
    "若い人や志のある人を、じっくり育てていくことのできない社会に未来はないのではないか"これは全くその通りだと思う。ただ コピペコードを量産する人をプログラマとはぼくは言わないのでその点だけは同意しかねる
  • ハッカソンで作った「→Kitayon」、アプリを譲渡することで事業化されました! : TORETA(トレタ) ブログ

    CTOの増井です。 日、ハッカソンから有志でこれまで開発してきた企業向け受付サービス「→Kitayon(キタヨン)」(以下、キタヨン)が、ディライテッド株式会社から「RECEPTIONIST」というサービスとして正式にリリースされました。 以前、記事にも取り上げていただきましたが、私たちは一昨年冬、チーム「風呂グラマーズ」を結成しTechCrunch Tokyo Hackathon 2015に出場、「キタヨン」を作り優秀賞を頂きました。私たちはそのキタヨンをディライテッド株式会社に譲渡し、キタヨンを元に「RECEPTIONIST」という受付アプリが開発され、日公開されました。 ハッカソンから生まれたプロダクトがこうして新しいスタートアップに引き継がれ、商用サービスとして世に出るというのはまさに画期的なことであり、開発チームとしても非常に嬉しく思います。 また、キタヨンを気にかけてくださ

    ハッカソンで作った「→Kitayon」、アプリを譲渡することで事業化されました! : TORETA(トレタ) ブログ
    luccafort
    luccafort 2017/01/12
    ハッカソンで作っておしまいではなくそれ買い取ってもらうというのは選択肢の1つとしてあってもいい気はする。 もちろん、他のメンバーの同意は必要だと思うけど。 あとは売った金額の差配とかで揉めなければ…
  • 技術的負債の返済 – レガシーコードをリファクタリングで救うには | プログラミング | POSTD

    レガシーコードをうまく手なずけて、もう一歩成熟させるにはどうすればいいのでしょう?この投稿では、大規模なレガシーウェブアプリケーションと格闘してきた私が学んだことを紹介します。レガシーコードをうまく手なずけて 、もう一歩成熟させるにはどうすればいいのでしょう?この投稿では、大規模なレガシーウェブアプリケーションと格闘してきた私が学んだことを紹介します。 レガシーコードはリファクタリングで救出可能 耳寄りなお知らせがあります! リスたちは毎年何千もの木を植えてくれています 。まあ自分たちが隠したドングリのありかを忘れてしまった結果ですけどね。そしてもうひとつ。 あなたのプロジェクトも救出できる のです。 ボスから任されたプロジェクトが どんなに醜い泥まみれのレガシーコードだったとしても 、そこには 必ず 道があります。道は曲がりくねっていて、木陰にはモンスターが待ち構えていることでしょう。

    技術的負債の返済 – レガシーコードをリファクタリングで救うには | プログラミング | POSTD
    luccafort
    luccafort 2016/12/28
    "うまく書けているコード片を見つけたら、それをライブラリ化しましょう。"なるほど。
  • コードレビューするのが怖いと思っていたエンジニアが半年間コードレビューを経験して思った 10 のこと - きょくちょ日記 -THERE'S ONLY MAKE!-

    これは pepabo Advent Calendar 2016 - Qiita の14日目の記事です。 昨日は id:Fendo181 さんの 日報サービス「DuPo」を作った話でした! それは、今からちょうど半年前のこと。 海の香りと共に暑い夏がやってくる ... 甘酸っぱい青春が再び来るのではないかと予感させる ... そんな季節でした。 開発チーム内で行っていたスプリントレトロスペクティブの時間に、チームメンバーから「そろそろコードレビューをやってみよう!」と提案があり、それから格的にコードレビューをやり始めることになりました。 早いもので、あれから半年が過ぎました。 今宵は年の瀬ということもあり、ふりかえりを目的として半年間コードレビューを積み重ねたことで僕の中で起きた考えの変化や感じたことについて 10 個書き出してみることにしました。 教育関連に興味がある方や組織の成長を考え

    コードレビューするのが怖いと思っていたエンジニアが半年間コードレビューを経験して思った 10 のこと - きょくちょ日記 -THERE'S ONLY MAKE!-
    luccafort
    luccafort 2016/12/15
    ぼくはもっとコードレビューは雑な感じでいいと思うけどたしかに最初は怖いのすごいわかる。個人的にはレビュアーに対する心遣いなんかは出来てないので気をつけます…。
  • Reactハンズオンを主催しました - ムログ

    こんにちは、むろです。 先日、Reactハンズオンという勉強会を開催しました。 やることになった経緯 「デザイナーだから…」を言い訳にしてReact書かない(具体的に言うと、JSXは書くけどpropsとかstateとかはエンジニアさんにお任せする)という仕事スタイルに限界を感じていたタイミングで、実務でReact経験があって教えてくれそうなひと( おおきさん・もろみーさん )を見つけることが出来たからです。 「わたしにReact教えてください。あ、ていうかせっかくなのでついでに他にも教わりたい人を呼びましょうか、20人ぐらい。」 という感じです。 当日までにやったこと あくまで、わたしも生徒の気持ちなので当日まではあえて予習していかないようにしていました。 なので、準備はイベントを実施するためのいろいろです。 これまで勉強会は参加するサイドだったのでどんなものを準備したらいいのかわからなく

    Reactハンズオンを主催しました - ムログ
    luccafort
    luccafort 2016/08/09
    参加者が10/60というのは悲しいけど逆に考えると10人だからこそ時間内に終われたのかな?とも思うのでその点は良かったんじゃないかな。