タグ

programmingとdevelopmentに関するczblueのブックマーク (44)

  • 人は1ヶ月でエンジニアになれるのか

    This document summarizes a microservices meetup hosted by @mosa_siru. Key points include: 1. @mosa_siru is an engineer at DeNA and CTO of Gunosy. 2. The meetup covered Gunosy's architecture with over 45 GitHub repositories, 30 stacks, 10 Go APIs, and 10 Python batch processes using AWS services like Kinesis, Lambda, SQS and API Gateway. 3. Challenges discussed were managing 30 microservices, ensur

    人は1ヶ月でエンジニアになれるのか
  • データがどのように更新されてきたのか追跡する - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 みなさんは、異常なデータを見つけたが、どうしてそのような状態になったのか追跡できず困ったという経験はないでしょうか。 今回は、そんなときにクックパッドで利用されているAuditログについてご紹介します。 Auditログとは クックパッドでのAuditログは特定のデータレコードに対して発生したイベントをコンテキストとともに記録するものです。 一般的に監査ログ、証跡ログといったものがありますが、それらとは多少異なっています。 ここでのイベントとは、あるデータレコードが 作成された 更新・変更された 削除された といったものです。またそれ以外にもログインした、ログアウトした、セキュアな情報が閲覧された、といったイベントも含まれています。 コンテキストは以下のようなものを記録します。 いつ どこで 処理が行われたホスト 何が イベント 何を 対象データの情報 スキー

    データがどのように更新されてきたのか追跡する - クックパッド開発者ブログ
  • 今まで経験したプロジェクトでありがちな展開と、エンジニアとしてアウトプットしていくパターン - mizchi's blog

    なんか最近、(比較的)アウトプットしてないな、とふと気づいたんだけど、よく考えたらプロジェクトの進捗のフェーズによってアウトプットの分量が偏るのはいつものことだなー、とも思った。 それらのフェーズを前期、中期、後期、運営期で考えみる。 初期段階 おそらくライブラリの選定段階から始まる。この時期のアウトプットは、いわゆる「やってみた系」の記事が増える。ウェブに出る記事だと、これが大多数をしめる。汎用性が高く、技術的に挑戦的なものが多い。(立場的な話をするとQiitaはそういう記事がたくさん共有されると助かる) 選定が終わった段階で、アーキテクト的な役割の人は、たぶんこうあるべきだ、みたいな思想を形成する。それをクラス図やコード規約や役割に応じたドメイン特化基底クラスとして表現したりする。DDD的なアレならこれをユビキタス言語の構築としてプロジェクトを通してやるべきなんだろう。 使う予定のフレ

    今まで経験したプロジェクトでありがちな展開と、エンジニアとしてアウトプットしていくパターン - mizchi's blog
  • コードコンプリートを再読した - $shibayu36->blog;

    以前職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;や補足 - 職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;で紹介したコードコンプリートを再読した。 Code Complete 第2版 上 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazonCode Complete 第2版 下 完全なプログラミングを目指して 作者:スティーブ マコネル日経BPAmazon 一年前はどちらかというと、コードのスタイルの話とか、条件をどうやって綺麗に書くのかとか、コメントはどう書くのかということを学びたくて読んだけど、今回はクラス設計をどうしていくべきかとか、チームでのエンジニアリングをどうしたら良いかとかを中心に読んでいった。 やっぱり学びたいと思っている内容が違うとそ

    コードコンプリートを再読した - $shibayu36->blog;
  • コードレビュー - hitode909の日記

    コードレビュー,慣れるとできるけど,いきなりdiffを渡されて,どうぞ見てくださいと言われてもよくわからないと思う. やりましょうというのはいいけど,ただむやみに読んでもうまくいかない.変更がある程度大きくなるとdiffだけ見てもよくわからないので,いろいろ見ることになる. 僕はいつも以下のようなことを無意識にやってて,うまくいってる気がしてる.GitHubのPull Requestの仕組みを使ってる前提で. Discussionをさらっと眺めてどういう問題を解決したいのか見る Commit Statusを見て,テスト通ってることを確認する Commitsタブで1コミットずつブラウザの新しいタブに開く 全部クリックし終わったら古い順に1コミットずつ読む 気になる点があったらエディタとかにメモしておく.あとで書き直されるかもしれないので,まだコメントしない 全コミット見終わったらFiles

    コードレビュー - hitode909の日記
  • プログラムの生産性を高めるためになにを勉強するか - きしだのHatena

    用語は形式的なものではなく感覚的なものであることをお断りしておきます。 言語・フレームワーク・プラットフォーム まず最初に触れるものでとっつきやすい。何か使えないことには話になりません。多くの人が、勉強というとまずここ。 何かすでにつかえる人が新しく勉強することは、生産性をあげない。そのプラットフォームを初めて採用するときの準備が減らせる。どちらかというと仕事の選択肢を増やす感じですね。 深く知ることは、最適なコードを書きトラブルを減らしトラブルが起こったときの対策も早くなるので、生産性があがります。ただ、ある程度の深さ以降は生産性への寄与度がさがるので、その点では深くまで勉強する必要はありません。 プロダクトの使い方なので、プロダクトの寿命が勉強成果の寿命です。実際に使わないものの勉強は無駄になるし、使われなくなったら無駄になる。寿命もそう長くないです。 「プログラマは勉強してもすぐ使わ

    プログラムの生産性を高めるためになにを勉強するか - きしだのHatena
  • レビュータイムの導入・消滅・再導入 - $shibayu36->blog;

    今日こんなかんじの会話があって、レビュータイム導入した時のことを思い出したので、適当に書こうと思う。 ひさいちレビュー、必ず通すみたいなの良いのか悪いのか— ひさいち (@hisaichi5518) 2014年3月13日 @hisaichi5518 マジレスすると、そのような体制にしておくとスケールしないので、最初の段階では必ず通すというルールにしつつ、他の人がレビューしても大丈夫に出来るように、レビューの練習を同時にしていってもらうとしないといけなさそう— 柴崎優季 (@shiba_yu36) 2014年3月13日 @hisaichi5518 今のチームで新人が入った時は、レビュータイムというのを必ず設けてその時間には最低限どれか一つレビューするというのをやってもらってる。でも慣れるまではこれまでチームにいる人がレビューしないとmergeしないということにしてる。— 柴崎優季 (@shi

    レビュータイムの導入・消滅・再導入 - $shibayu36->blog;
  • 不具合にテストを書いて立ち向かう - t-wadaのブログ

    テストを行っている品質保証チームや、実際にシステムを使っているお客様から不具合が報告されたとき、あなたはどう思いますか? 悲しんだり、恥ずかしいと思い、不具合修正にすぐに着手したいと気がはやるのが人情というものです。しかし、焦っているときに行う作業はしばしば視野が狭く、一つの不具合修正が三つの新たな不具合を生んでしまうようなことになりがちです。 テスト駆動開発(TDD : Test Driven Development)は、プログラマが自分の不安を克服し、自分が書くコードに自信を持ちながら一歩一歩進んでいくための手法です。不具合の発生は、端的に言えばこれまでの「自信」を揺らがせる事態です。テスト駆動開発者は不具合にどう立ち向かうのでしょうか? やはりテストを書いて立ち向かってゆくのです。私はテスト駆動開発を数年間実践してきた中で、心がけているひとつの「掟」があります。それは「不具合の修正時

    不具合にテストを書いて立ち向かう - t-wadaのブログ
  • ユニットテストにまつわる10の勘違い | DevelopersIO

    渡辺です。さる方面からテスト系のエントリーがまだか…と催促されたので、ユニットテストについて少し考えてみたいと思います。 最近、TwitterのTLをチェックしていると、JUnitを利用しているにも関わらず違和感のあるTweetや、原因をJUnitにして来解決すべき問題から目をそらしているようなTweetを多く見かけます。そこで、JUnitをによるユニットテストに関するありがちな勘違いをまとめてみました。 なお、JUnitの部分は、RSpecでもNUnitでも適当に置き換えて読んでも構いません。 1.JUnitを使うことが目的という勘違い JUnitを利用すること自体を目的にしたところで何も得る事はありません。 ありがちな話ですが、「納品物としてJUnitのテストコード(または実行結果)を求められている」ことが理由でJUnitを利用しているならば、それは足かせでしかない可能性があります。

    ユニットテストにまつわる10の勘違い | DevelopersIO
  • 優れた仕様を決定するために必要なこと - GoTheDistance

    たまにはブログ更新したいから、ついさっき流れてきたエントリにいついちゃうよー。 ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か | Social Change! 工程の分断はあり得ません ソフトウエアの設計に実装経験が要るか要らないかというのはそもそも議論にならない。「ソフトウエアの設計=仕様の設計+コードの設計」なんだから、例えればコインの表と裏。それらは引き離すことは出来ないのに引き離して分業しようとするからよろしくないことが起きてしまうというのが、上記記事の主題かと思います。簡単に言えば。 僕もこの点については「工程の分断」という言葉で何度も書いています。コインの表と裏であるべきものを分断してしまうと、互いのフィードバックを得る術を無くしてしまいます。そうなったら良いことは無い。ここは誰でも納得がいく所でしょう。 仕様を設計するチャンスって超少ないんじゃない?

    優れた仕様を決定するために必要なこと - GoTheDistance
  • ド素人が完全自作SNSを二週間運営してみてわかったこと(後始末編、技術編、モチベーション編)

    ド素人が完全自作SNSを作ってみてわかったこと。 http://anond.hatelabo.jp/20130104184115 の元増田です。 ひっそりと公開したはずのtag-chat.net(http://tag-chat.net)ですが、 まさか、こんなに反響を頂けるとは思っていなかったので、びっくりしました。 素人のフリをしているとか、出版社のステマだとか色々言われましたが、嘘は一切書いてないです。 ステマというか、ウェブサービス公開後の状況を知っている方からするとマイナスのステマにしかなっていないような気がします…。 公開してから、色々と発見というか気づきがあったので、それを共有できれば幸いです。あと、tag-chat.netの中身についてなど。 ~増田記事を公開してから今までの経過~ ・意気揚々と自作SNSを公開したものの、アクセスが全くこなくて途方にくれる。 ⇓ ・以前、完全

    ド素人が完全自作SNSを二週間運営してみてわかったこと(後始末編、技術編、モチベーション編)
  • 近頃の開発環境 : Mosh、z、tmux、Emacs、Perl について - naoyaのはてなダイアリー

    昨日は年始の挨拶ついでに ELPA について脈絡もなく突然書きましたが、引き続き近頃の開発環境についてもだらだらと書いてみよう。 Mosh mosh というと一部の人間はひげなんとかさんが開発しているモナー的なあれを思い浮かべるかもしれないがそうではなく、mobile shell のことである。 思い切り簡略化して言うと「快適なssh」。回線が不安定な所でもエコー遅延など全く気にせず使えるし、Mac をスリープさせて復帰させたときもリモートホストにそのまま繋がりっぱなしのように見せかけてくれたりする。 詳しくはこの辺を。 mosh: MITからモバイル時代のSSH代替品 - karasuyamatenguの日記 インストールはリモートとローカル両方に必要ですが、まあ大概パッケージがあると思います。EC2 の Amazon Linux でも yum レポジトリの EPEL を有効にすれば y

    近頃の開発環境 : Mosh、z、tmux、Emacs、Perl について - naoyaのはてなダイアリー
  • バッチ処理を再考する - 急がば回れ、選ぶなら近道

    最近そもそもバッチ処理というものを知らない人達を見ることが多くなりました。某プロジェクトで「いや、ストプロってよくわからないんですよ。最近書いたことないし。」という話をずーっと聞いていたのですが、人はバッチ処理という意味で話していたことが後から判明した、ということがありました。 ああ、この人はSQLでのバッチ処理しか知らないのですね、とちょっと衝撃ではありました。とうとうそーゆー時代になったかと。 まず、誤解のないようにいうとバッチ処理、という言葉自体はIT固有のものではないです。生産管理や物流や、そういった業務では普通に「バッチ」という言葉をIT以外で使います。ただし意味はある程度同じで、「一定の塊を一度に処理をする」ということです。物流システムの業務要件なんかを詰めているとバッチっていうと、どっちのこと?なんて普通に聞かれたりします。その意味ではバッチの対義語がリアルタイムというのは

    バッチ処理を再考する - 急がば回れ、選ぶなら近道
  • レガシーPHP改善日記 シーズン1 エピソード2 - komagataのブログ

    hrysd心を折られるチンカスプログラマーことhrysdがバイトで来てくれることになったので一緒に大門に出社。 初出社前に既にバグを一個潰してコミットしているという荒業を見せたhrysdだが、3000行を超えるcontrollerに早くも心を折られる。 俺「actionのメソッドが5行を超えたら危険印、なんていうrailsのぬるま湯に使ってたんだよ!これがサバンナだ。」 Github Organization契約出社後早速、社長にGithub Organization Bronzeプランを契約してもらう。技術的なことはわからないというが、リスクを背負って立てなおそうという気持ちが伝わって来ました。 9月30日の直近の締め切りに間に合わないのでsvn + redmineからの移行は10月にお預けだ。 svnがよくわかってないまずはsvnでもトップにぶち撒けられてるというのは辛いのでtrunk

  • テストでは何をテストすべきか — recompile.net

    2012年08月21日 ソフトウェア開発でのテストとは何かを単純に言うと、成果物が期待通りであるかを検証する作業といえる。こう動作してほしいという期待を入力に、成果物がその通りに動作するかを検証するのがテストである。 となると、成果物とは何で、期待とは何かが問題になるのだけれど、これが一筋縄ではない。というのも、システムは十分に複雑なので、ある部分を複数の部分に分けることもできるし、その部分をより大きな部分のパーツにすぎないとみなすこともできるからだ。 だからといって、一番大きな単位でもって期待通りにあるかどうかを検証すれば済む話かというとそういうわけでもない。というのも、大きな単位には大きな単位なりの期待が、小さな単位には小さな単位なりの期待というものが存在するからだ。 システム開発は、ひとつのものさしではかることができない。システムをつかって業務を遂行できるかという検証と、その部品であ

    テストでは何をテストすべきか — recompile.net
  • TechCrunch | Startup and Technology News

    TechCrunch Daily News Every weekday and Sunday, you can get the best of TechCrunch’s coverage. Startups Weekly Startups are the core of TechCrunch, so get our best coverage delivered weekly.

    TechCrunch | Startup and Technology News
  • Emacs and Suit @開発環境勉強会

    言語 Java, JavaScript, Ruby, elisp 興味 User Interface 人間とふれあうところ 機能以上の楽しいUI 理想の言語を探している 作った物 yajb skype.el / calfw / 3D迷路 その他いろいろ ハードウエア ThinkPad X201s / Corei7 / 6GByte HHKB Pro2 / KINESIS Advantage / RealForce 89U... Kensington Slimblade, Expert Mouse 7 OKAMURA Contessa / Baron ソフトウエア Ubuntu 10.10 amd64 US Qwerty / ATOK X3 GNOME Metacity / gnome-terminal zsh / Nautilus / Emacs / vi / magit / ts

  • もし永和の新入社員がケントベックの『テスト駆動開発入門』を読んだら

    This document contains links to various photos shared on Flickr. There are no descriptions of the photos or any other text - just URLs linking to different user profiles and photos uploaded to the Flickr hosting website.

    もし永和の新入社員がケントベックの『テスト駆動開発入門』を読んだら
  • 技術的負債 - Strategic Choice

    Technical debt最初のコードを出荷することは、借金をしに行くことと同じである。 小さな負債は、代価を得て即座に書き直す機会を得るまでの開発を加速する。危険なのは、借金が返済されなかった場合である。品質の良くないコードを使い続けることは借金の利息としてとらえることができる。技術部門は欠陥のある実装や、不完全なオブジェクト指向などによる借金を目の前にして、立ち尽くす羽目になる。 ウォード・カニンガムさんどういうこと?技術的負債とは、コードにおける「修正しにくい」「理解しにくい」といった、問題のある部分のことです*1。負債は、すぐに返済すれば、大きな問題にはなりません。しかし、長期間そのままにしておくと、利息が雪だるま式に膨らみ、もはや返済が不能なまでになってしまいます。技術的負債も同様です。問題のあるコードも、直ちに修正していけば大きな問題にはなりません。しかし、放っておくと、最終

  • 面白かったので怖い話の反応に反応してみる - 神様なんて信じない僕らのために

    id:Dr_Caligariさんから面白い反応があったので、 俺も思ったことに対してつらつら反応してみます。 普通にコメントしようと思ったのですが長くなったのでTB返しで。 私が書くのはゲーム業界のプログラマーという狭い世界で生きている人間が思った事 ということで、俺もゲーム業界の片隅で生きていた事はあるのでその観点で反応してみます。 ディレクトリ構成が機能単位でなくプログラマの名前幽霊 これ実際に見たことあります。 アセンブラを使っていて、プロジェクトの規模が小さかった時代の名残らしいです。 恐らく俺が見たプロジェクトもアセンブリの頃の名残でした。 プロジェクト管理とかソース管理という構成管理の概念がなかったころなら、 別に良いとは思うのですが、今でもこれを引き継いでいてこれを「気で」良いと思っている人がいることが恐ろしくもあります。 バージョン管理システムを使わない幽霊 そろそろ分散

    面白かったので怖い話の反応に反応してみる - 神様なんて信じない僕らのために