SonicGarden Study #11で放送された資料から一部スライドを抜いたものになります。 http://sonicgarden.doorkeeper.jp/events/13229 ----- 優れたプログラマだけが優れたソースコードを書くことができます。 では優れたプログラマになるにはどうすれば良いでしょうか。 自分の書いたコードを、優れたプログラマに指摘してもらうことが一番の近道です。それがコードレビューです。たった一人でコードレビューも受けずに、ただ書き続けてもクソコードはクソコードのままなのです。 そこで今回は、良いコードが書けるプログラマになるための、コードレビューを上手に実践する秘訣を話します。
original: The introduction to Reactive Programming you've been missing (by @andrestaltz) (translated by @ninjinkun, reviewed by @ma0e) あなたはリアクティブプログラミングと呼ばれる新しい方法が気になっている。 勉強するのは大変で、良い教材がないのでさらに難しい。私が勉強を始めたときは、まずチュートリアルを探した。見つけたのは一握りの実践的なガイドだけ、しかもそれらは表面をなぞっているだけで、リアクティブプログラミングのアーキテクチャ全体像を構築しようとしてはいなかった。ある関数を理解するのに、ライブラリのドキュメントは役に立たないことがある。 これを見て欲しい。 Rx.Observable.prototype.flatMapLatest(selector,
きしださんのエントリが話題です。 オブジェクト指向は禁止するべき - きしだのはてな 「禁止するべき」とはまた随分と煽りタイトルですねと思いつつも、内容自体はとても納得のいくものでした。 ただ「オブジェクト指向」というのはいろいろな観点で語られることが多く、多少モヤモヤとはしているので僕の考えを書いてみようと思います。 なお、きしださんご自身は以下の補足エントリで立場は明確にされています。本エントリはこれを否定するものではありません。あくまで違った立場からの意見です。*1 オブジェクト指向について - きしだのはてな 参考までに、ぼくの基本的な定義は、ランボーの「データ構造と振る舞いが一体となったオブジェクトの集まりとしてソフトウェアを組織化すること」という定義に従っています。そのようなオブジェクトが単体ではなく組織化されるということが重要です。オブジェクト指向を勉強するとはそのような組織
エンジニア組織を強くするための本を出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 デメテルの法則 別名最小知識の法則。デメテルは、豊穣の女神。アスペクト指向などの研究であった「デメテルプロジェクト」に由来。 基本的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 単純化して説明すると、オブジェクトの"メンバーのプロパテ
プログラムがまだ不慣れな人が「プログラムちょっとわかるようになったけど、まだぜんぜんオブジェクト指向とかできてません」のように言ったり、ちょっと慣れた人が「このソース、ぜんぜんだめ。オブジェクト指向ができてない」にようなことを言ったり、まるで、オブジェクト指向ができてるかどうかがよいプログラムかどうかを表すことになってるようだ。 Javaのアルゴリズムの本に、「Javaなのにオブジェクト指向ができていない」のような書評がついているのを見たときには、お前は何を求めてるんだと思ったりもした。 そのようなオブジェクト指向は、窓から投げ捨てるべきだ。オブジェクト指向はプログラムのよしあしの基準にならない。 むだにHogeインタフェースとHogeImplクラスがあったり、むだにnewするだけのcreateメソッドがあったり、どこで値が設定されてるかわからないオブジェクトがひきまわされてたり、ソースコ
はじめに 関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考えるという記事がkenokabeさんという方が挙げていて、拙著の 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡について言及があったので、補考として挙げておく。 暗黙的状態と明示的状態 これまで、関数を「わかりやすくきれいに書く方法」とオブジェクト指向が「どのようにして生まれてきたか」について話してきた。 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 一見、それぞれ関係ないように思うかもしれないが、実は大きなテーマでつながっている。 『それは「状態」をどのように取り扱い単純化するか。』ということだ。そして、これがいわゆる関数型プログラミングとオブジェクト指
そろそろ本気で「Webスクレイピング」に取り組まなければならない気がする今日この頃、Webスクレイピングに関してググって見つけた参考記事へのリンクをシンプルに羅列してまとめてみました。 ちなみに「Webスクレイピング」については、以前書いた記事「Webスクレイピングとは何ぞや?という疑問が浮かんできたので調べてみた」を参照してみて下さい。 参考記事リンク31個まとめ (PHPでのスクレイピングとか) 初めてのスクレイピング - しぶてぃーぶろぐ » PHP初心者がやってみた!スクレイピング入門|inimoni PHPでphpQueryを使ってWebスクレイピングしてみる - omiya6048's blog 誰でもスクレイピング!DOM要素を引っこ抜くSimple HTML Dom-ITかあさん ウェブ上の必要なデータを抽出する方法-スクレイピング- | PHPサンプル実験室 PHPでのス
あるある。 高校生の頃からPCでゲームをやったり、動画を見たりするのが好きだった。 受験を勉強頑張って結構名のしれた国立大学に入れたは良いが息詰まってしまった。 授業でプログラミング入門の講義をとってみたら全然わからない。 メソッド?コンストラクタ?再帰?このfor文どういう動きなわけ?! バブルソートってなに?来週までに作ってこいってなんだよその宿題。ってな具合で 完全に置いてけぼり食らった。俺の周りはそこそこプログラミング経験者が居て、 俺みたいな完全初心者は殆ど居ない。 マジでなんでこんな学部選んじまったんだ。プログラミングに適正あるなんて聞いてないよ;;たいしに (はてな匿名ダイアリー:パソコンが好きで情報系学部に入ったは良いが・・・) でも、広く同年代、あるいは、日本国民全体で考えると「PC使うことに拒否感がない」「ネットが便利であることを知っている」というのは結構有利な点だった
はじめに 今となっては、プログラマにとってなんとなく理解して利用できることが当たり前になりつつあるオブジェクト指向ですが、しかし、それこそ今から数年前には、この「オブジェクト指向」というのは、いわばおじさん達が変な方針を打ち出したりして「え、それ変な実装方針じゃねえの」というツッコミが入ったりしていました(ちなみにそのあたりの雰囲気については、この記事を読むと分かりやすいでしょう)。 もちろん、これはこれなりにメリットがあるのかもしれませんが、しかしそれはまた別のオブジェクト指向を利用したモデリングと比較してのことであって、「これだけでいい」と考える人はいないでしょう。 原則: だってそのほうが開発しやすいから まず最初に原則を考える必要があります。まずひとつに、必ずしもオブジェクト指向が正しいモデリングの方法ではないこと。少なくとも自分が思うに、オブジェクト指向を使うべき理由というのは、
というような大きく構えたタイトルにしてみたが、デジタルな結論を持った記事ではない。 教育制度として文系とか理系とか分ける意味あんのか、というような議論はさておき、現行でそういう制度が存在している以上は僕の身の周りにも文系学部からプログラマーになった人、理系学部からプログラマーになった人がいて、僕の知る限りでは両者にプログラマーとしての能力の差は見受けられない。 世間では、どうやらプログラムを書くのには数学的な能力が必要だと思われているせいか、あるいはいわゆる情報システム系の学部が理系学部に分類されているせいか、理由は全員に聞いてみたことがあるわけじゃないのでよく分からないが、どうやらプログラマーといえば理系だと思っている人が多いようだ。 僕個人で言うと、大学・大学院と数学の点数の低さを英語の点数でカバーしてきた(これは実際には点数の照会なんてしてないので実際には不明なのだが、明らかに手応え
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識が本になりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマ
2014年4月16日より開始したpaizaオンラインハッカソン(略してPOH![ポー!])Vol.2「女子大生とペアプロするだけの簡単なお仕事です!」ですが、2014年5月14日いっぱいをもって開催期間を終了いたしました。(コードの実行自体は引き続き可能です)。 今回のオンラインハッカソンも数多くご参加いただきありがとうございました! 今回はpaizaオンラインハッカソンVol.2のレポート、最終結果と、提出された各プログラミング言語毎の最速コード(女子大生プログラマ木野ちゃんの心を鷲掴みにした最強コード)についてお届けします。 ■言語別 最速・最遅実行時間結果 POH Vol.2上でも掲載していましたが、まずはテストケース7(大規模データ)の最速・最遅実行時間、提出数です。 言語 最速実行時間 最遅実行時間 通過数 / 受験数 Java 0.04 秒 5.98 秒 327 / 1364
1: 以下、\(^o^)/でVIPがお送りします 投稿日:2014/05/15(木) 11:37:27.01 ID:9iQhGYxE0 おはようございます。 関連:2ちゃん式iOSプログラミング講座第9回「デリゲート」 2: 以下、\(^o^)/でVIPがお送りします 投稿日:2014/05/15(木) 11:38:18.27 ID:BOJaRg8z0 今日もよろしくお願いします 3: 以下、\(^o^)/でVIPがお送りします 投稿日:2014/05/15(木) 11:38:39.83 ID:0+hKBhIo0 あーざーっす 12: 以下、\(^o^)/でVIPがお送りします 投稿日:2014/05/15(木) 11:46:37.25 ID:xKnXWWwN0 第一回からやってんの? シラバスください! 4: 以下、\(^o^)/でVIPがお送りします 投稿日:2014/05/15(木)
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 「オブジェクト指向プログラミング」と「関数型プログラミング」のたった一つのシンプルな違い あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 この記事について この記事は新人向けの研修内容を再編集してお送りいたします。 ここで述べる内容はどのようにして現在のプログラミングスタイルが生まれてきたかを
プログラムを理解するのは、まあ難しいです。 でも、その難しさには階層があります。 よく、変数は箱だとか箱じゃないとか議論になりますが、何人か初心者に教えた感じでは、変数自体でつまづくことはあまりないので、実際はそんな例えをしなくても「変数は変数だ」で充分だったりします。 デバッガでステップ実行しながら変数の内容を見ればいい。 で、条件分岐くらいは結構つまづくことはなくて、単純な演算と条件分岐だけが必要なプログラムであればまあそれなりに書けるようです。 ぼくも、一番最初に自分の意図で作ったプログラムは input "ワカレミチガアル。ドウスル? 1:ミギ 2:ヒダリ"; a if a = 1 then print "ガケニオチテシニマシタ" else print "ライオンニカマレテシニマシタ" みたいなものでした。こういった条件分岐をたくさん並べてアドベンチャーゲームっぽいものを作った人は
意外と知られていない構造化プログラミング、あるいは構造化プログラミングはデータも手続きと一緒に抽象化する、あるいはストロヴストルップのオブジェクト指向プログラミング史観 書いた人: ると 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜という記事がありました。手続き型からの発展としてのオブジェクト指向という史観を書いた記事です。しかし、そこで次のように述べられている史観は少々単純化しすぎです。 手続き型プログラミングでは手続きを抽象化することで保守性を挙げることに成功したが、データを守ることには失敗してしまった。そこでオブジェクト指向はデータと手続きをひとかたまりにすることでデータを外から守るというコンセプトを打ち出した。 手続き型プログラミングの時代は、少なくとも思想的にはそこまで暗黒的ではありませんでしたし、「データと手続きをひとかたまりにする」の
納涼!ほんとにあった怖いコード(by CodeIQ×はてな) システム開発の仕事を始めて、はや二十年。。。 ごく普通の退屈なおじさんエンジニアですが、 長年やっていると自然とこの手のお話はたまっていくものの様で。。。 今宵はいくつかご紹介しましょう。。。 ■念のためロジック 今からおよそ20年程前。私が駆け出しだった頃のお話です。 当時のシステム開発といえば、大型のコンピュータで、COBOL(コボル)という 言語を使うものが主流でした。(多分 (^_^;) COBOLのプログラムの特徴は、上から下へ長々と処理手続きを順番に書く。。。 サブルーチンという機能は有り、一部は使っていましたが、 基本的には上から下へ、長々と処理を書くというやりかたでした。 ある意味読みやすい、ある意味非効率な書き方でした。 1つのプログラムで、1000行2000行は当たり前、酷いものになると1万行以上 という、他
納涼!ほんとにあった怖いコード(by CodeIQ×はてな) ↓↓↓ ここに君が見たクソコードを書こう!! ↓↓↓ クソの定義なんて個人によってかなり変わってくると思うので、しかも誰しもがクソだと思いそうなコードに出会った記憶が出てこないので、個人的にイラッとしたコードを書いてみる。 こんなんどうってことないだろってものも含まれると思うので、とても個人的な意見として。 ①変数編 int intShoriCnt int intShoriHugo String sSyoriKbn String sDelKubun☆イラッとポイント☆ ヘボン式にするなら全部しろ。なんで微妙に違うの混ざってんだよ! 型をわかりやすくするために先頭につけるのはいいんだけど、なんで1文字だったり3文字だったりするの?全部3文字じゃダメなん? 略すなら全部略せ(「Kbn」と「Kubun」) ②コメント編 if(i ==
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く