タグ

開発に関するkei_keiのブックマーク (25)

  • 開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例 - 達人プログラマーを目指して

    まったく個人的なモチベーションの問題から、前回の最終更新から2年以上が経過してしまい、多くの読者のみなさんにはご心配をおかけいたしました。「プログラミングに関して調べたことや日々感じたことをメモとして残していきたいと思います。」というもともとの原点に立ち返って、あまり気負わずに、また今後も時々更新していけたらと思います。今までこのブログの主なテーマとして、JavaEEやSpringといったような、いわゆる業務開発で使われるような技術を中心としてきたわけですが、最近Springを使ったJavaの開発に(アーキテクトではなく)プログラマーとしてちょっと参加する機会があったので、その時気づいたこと、感じたことを書いてみたいと思います。 さて、皆さんはアーキテクチャやアーキテクトという言葉に対してはどのようなものをイメージするでしょうか。システムのセキュリティを確保するための方式であったり、大量の

    開発チームにアーキテクトがいないなと感じてしまうような、残念なコードスメルの例 - 達人プログラマーを目指して
  • 働きながら7年間かけて博士号を取得しました - takminの書きっぱなし備忘録 @はてなブログ

    昨日、学位授与式がありました。このタイミングを逃すと面倒くさくなってもう二度とブログを書かない気がするので、社会人博士を考えている方々の参考となるように自分の紆余曲折をまとめておきます(長文注意)。 進学までの経緯 1999年にコンピュータビジョン(以下CV)と呼ばれる分野で修士号を取得しました。この時の修論は黒歴史です。 この時に自分は研究者に向かないことを痛感したので、まさかその後博士課程に進むことになるとは夢にも思っていませんでした。 就職後は外資系IT企業で、4年半ほどCVとはまったく関係ない分野(ITインフラ系)でSEをやっていました。 その後リストラを機に入社したベンチャー企業がたまたまCVの会社で、そこで自分の学生時代の専門がビジネスとして面白くなりそうだと感じ、この分野で飯をっていきたいと思うようになりました。 その後ブラック会社勤務を経て、顔認識ソフトウェアを扱っている

    働きながら7年間かけて博士号を取得しました - takminの書きっぱなし備忘録 @はてなブログ
  • ユニットテスト改善ガイド | DevelopersIO

    先日、日Javaユーザグループ(JJUG)主催のJJUG CCC 2013 Fallで、「ユニットテスト改善ガイド」というタイトルで登壇してきました。自分の経験を元に、ユニットテストをチームや組織へ導入する時に起こりえる問題とその解決のヒントに関するセッションです。エントリーではそのセッションの内容を再構成して公開します。 はじめに 近年のシステム開発では、ユニットテストや継続的インテグレーション(以下、CI)の導入は必要不可欠と考えられています。とはいえ、どんな組織(チーム)でも簡単に導入できているわけではありません。特に、大きな組織や古くからの慣習を残している組織では導入したくとも中々進まないと感じているところが多いのではないでしょうか?。 私は、これまでに多くの開発現場でユニットテストやCIの導入について推進してきました。成功したケースもあれば失敗したケースもあります。そして、失

    ユニットテスト改善ガイド | DevelopersIO
  • 東大、家庭用インクジェットプリンタを用いた電子回路印刷技術を開発

    東京大学は、家庭用インクジェットプリンタを用いてさまざまな電子回路素子を印刷する技術を開発したと発表した。 同成果は、同大大学院 情報理工学系研究科 電子情報学専攻の川原圭博准教授によるもの。英Microsoft Research(MSR)、米Georgia Institute of Technologyと共同で行われた。詳細は、9月にチューリッヒで開催された国際会議「UBICOMP 2013」にて発表された。 紙やシート状のプラスチックなど、柔らかく変形可能な素材の上にセンサや電子回路を実装するフレキシブルエレクトロニクス技術が注目を集めている。これまで、最先端の研究成果では、厚さ約2μmの極薄フィルム上に有機半導体を用いて電子回路を作成することにも成功している。しかし、こうした電子回路を作成するためには、特殊な装置と高度な知識とスキル、時間が必要だった。例えば、回路素子用の配線を印刷す

    東大、家庭用インクジェットプリンタを用いた電子回路印刷技術を開発
  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • ドキュメントベースの単体テストでxUnitを導入する前に考えて欲しいこと | Developers.IO

    ドキュメントベースの単体テスト ソフトウェア開発では、テストケースをExcel等で管理し、テストをテストフェイズで実施する方式(以下、ドキュメントベースの単体テスト)が行われてきました。 ドキュメントベースの単体テストでは、テストフェーズが明確に切られています。テストフェーズでは、テスト担当者がテストを実施し、結果をドキュメントに記録します。必要に応じてエビデンスも残すでしょう。もし、テストが失敗したならば、不具合管理票(バグ票)を起票します。そして、不具合の原因を分析し、仕様書やソースコードを修正します。不具合が修正されたならば、もう一度テストを実行し、不具合がなくなるまでこのサイクルを繰り返し、品質を高めていきます。 このようなドキュメントベースの単体テストは、機能や画面を対象としています。そして、ほとんどの場合は品質保証を目的としています。テスト件数や不具合件数、不具合の発生原因や修

    ドキュメントベースの単体テストでxUnitを導入する前に考えて欲しいこと | Developers.IO
  • 思考停止ワードとコミットログとコードコメント - 勘と経験と読経

    古い記事になるのだけれど、バージョン管理ツールにコミットログのNGワードを登録するという話が面白かった。ソフトウェアは思考がそのまま品質につながるようなところがある。思考停止に近しいワードを禁止してしまうのも手かもしれない。 コミットログのNGワード 注意するのも疲れるし、大抵の場合は注意しても直りません。 そんなわけで、私が面倒を見ている環境だとpre-commit-hooksを使って、規定のバイト数のコメント書かないとコミット出来ないようにして対応しています。 コミットコメントを意地でも書かせたい - almost nearly dead 単にコメント無しを規制するだけではなく、思考停止してしまうようなワードを禁止しているのが素敵。 また、これに加えて会社名や人名も禁止してしまうのはうまいやり方だと思う。人の名前が出てくるとそこで情報が隠蔽されてしまうし、「問題 VS 我々」のスタンス

    思考停止ワードとコミットログとコードコメント - 勘と経験と読経
    kei_kei
    kei_kei 2013/09/30
    これ、うちもやってみたいな
  • ユニットテストにまつわる10の勘違い | DevelopersIO

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

    ユニットテストにまつわる10の勘違い | DevelopersIO
    kei_kei
    kei_kei 2013/09/18
    「個人的な目安としては3ヶ月に1回程度のリリースがないと大きなメリットとはならないと感じます。」そんなもんか。
  • システムの「価値」をどう考えるのか?〜なんで人月換算基準がなくならないか、について - 急がば回れ、選ぶなら近道

    「なんで人月換算基準がなくならないか」については、これは作る側での議論が非常に多いのですが、逆側から見た議論があまりにも少ないので、自分の考えを記録しておきます。そもそも、発注した側ではシステムの価値をどう見るのか?という議論があまりにもなさ過ぎの印象があります。いくら作る側が頑張っても、発注サイドで「いやだから、結局いくらかかったか内訳見せろ」という話になった途端に、残念ながら人月単価が登場するわけで、話は振り出しに戻ります。 まず一義的にはユーザーから見たシステム開発は投資になります。確かに、毎年作っているでしょう、という話もありますが、普通は数年に一回作っては動かして、メンテナンスにモードに移行させる、という形になります。投資として、通常はキャッシュ・アウトに相当するコストで資産を認識します。リースにすれば、定常的でしょうという話もありますが、オン・ブックになった途端に普通に取得原価

    システムの「価値」をどう考えるのか?〜なんで人月換算基準がなくならないか、について - 急がば回れ、選ぶなら近道
    kei_kei
    kei_kei 2013/07/16
    システムの価値が人月じゃないなら何で測るの?という話。
  • コード内で「現時刻」を気軽に取得してはいけない | Nekoya press

    日付を扱う処理についていろいろまとめたついでに、わりと簡単なことだけど知らないと落とし穴にハマる系のネタを。 日頃いろいろな処理を書いていて、現時刻を扱うこともは少なくないはずです。ですが、これを適当にやっていると困ることが多々あります。 実行中に「現時刻」を元にした処理がい違う 例えばこんなコード。ログ集計とかやってるイメージです。 class Analyzer(object): def analyze(self): logfile = datetime.datetime.now().strftime('my_log_file.%H') self.save(self.analyze_logfile(logfile)) def save(self, result): now = datetime.datetime.now() self.result[now.hour] = result

  • アサーション・ベース検証

    改訂版EDA用語辞典とは・著者一覧 アサーション・ベース検証(assertion-based verification)は機能検証手法の一つである。アサーションとは,検証対象の設計が満たすべき性質を指す。アサーション・ベース検証は,RTL(register transfer level)設計を対象にした論理シミュレーションで使われることが多い。 具体的には,論理シミュレーション中に,検証対象とアサーションの関係を調べて,アサーションが満たされているかどうかチェックする。こうすることで,設計記述の観測性が上がり,設計のバグを発見しやすくなる。また,バグの原因を解析しやすくするという効果もある(図1)。 IEEE標準のアサーション記述言語 アサーション1)は,設計した回路で期待されている動作や禁止されている動作などを書いた文である。通常,その内容は,曖昧性がないようにハードウェア記述言語(Ve

    アサーション・ベース検証
  • 長文日記

    kei_kei
    kei_kei 2013/06/17
    ハードをやるのは大変、という話。
  • 29-DRY原則 - やさしいデスマーチ

    「プログラマが知るべき97のこと」の29個目のエピソードは、DRY原則に関する話です。「DRY(Don't Repeat Yourself:繰り返しを避けること)原則」は達人プログラマーの中で提唱された原則の1つであり、プログラマならば誰もが聞いたことのある最も有名で重要な教えの1つです。同じようなコードが幾つもある状況は、無駄であり、メンテナンスコストも高くなります。いわゆる「コピペ」コードを量産すると、ライン数は稼げますが品質は下がるのは誰もが経験しているのではないでしょうか?このエピソードでは、そんなDRY原則を再確認しています。 DRY原則は、コードの重複だけに当てはまるものではありません。単体テストやパッケージングなど「繰り返して実行するタスク」に関しても当てはまります。コードの重複を排除するときにはデザインパターンやリファクタリングを使いますが、タスクの自動化には自動するツール

    29-DRY原則 - やさしいデスマーチ
  • あるソシャゲ会社のプロジェクトのひっくり返り方。 島国大和のド畜生

    伝聞。 あるソシャゲ会社のプロジェクトのひっくり返り方。 1年目 新卒に運営の手伝いをさせる。 2年目 運営を切り盛りさせる。 3年目 開発の頭をやらせる。 (実際にはそれぞれ6ヶ月ぐらいと思われる) そりゃひっくり返るわ。 何一つ開発で学んでないじゃんか。なぜ開発ができると思うんだ。 運営業務はウィークリーでデイリーなので、関わってると運営に関しては結構いいスピードで詳しくなるが。 開発は少なくとも数ヶ月かかるので。詳しくなるには何かの完成に付き合う必要があり数年を要する。 絵でも漫画でもゲームでも。1仕上げる度に能力がつく。 1まるっと面倒見ないと、それを作る間にどういうコストとリスクがあるのかを肌で理解できない。 どういうトラブルが発生し、それをどう解決したかの蓄積がたまらない。 そもそも今あるトラブルがどれぐらいのトラブルなのかも見当がつかない。 イベント1コつくるのとゲーム

    kei_kei
    kei_kei 2013/05/22
    人のアサインに問題がある、という話。
  • 長文日記

    kei_kei
    kei_kei 2013/05/10
    大きな組織ほど新しいことはやりにくい、ということか。
  • レーシングエンジン開発で3大メーカーが共闘 ――「これからのエンジンはどうあるべきか」自動車メーカーで働くエンジニアが募らせる危機感 - エンジニアtype | 転職type

    転職・求人情報サイトのtype エンジニアtype ITニュース F1ジャーナリスト世良耕太の自動車開発探訪 レーシングエンジン開発で3大メーカーが共闘 ――「これからのエンジンはどうあるべきか」自動車メーカーで働くエンジニアが募らせる危機感 自動車開発の最先端を行くF1を長年追い続けてきたジャーナリスト世良耕太氏が、これからのクルマのあり方や そこで働くエンジニアの「ネクストモデル」を語る。 ハイブリッド、電気自動車と進む革新の先にある次世代のクルマづくりと、そこでサバイブできる技術屋の姿とは? 「家電メーカーさんには悪いのですが、自分たちも、今の家電メーカーさんのようになってしまうのではないか。そういう危機感は持っています」 こう発言したのは、ある自動車メーカーでレーシングエンジンの開発に携わるエンジニアだ。一方、自動車メーカー直系モータースポーツ会社でエンジンを開発するエンジニアは、

    レーシングエンジン開発で3大メーカーが共闘 ――「これからのエンジンはどうあるべきか」自動車メーカーで働くエンジニアが募らせる危機感 - エンジニアtype | 転職type
  • 「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみる - 日々常々

    気象庁の地震情報|平成25年04月13日05時48分 気象庁発表 4/13のAM5:33にM6.0らしい地震がありました。各地で大きな被害が無いことを祈りつつ。 フジテレビのアナウンサーさんが淡路島の電車の状況を聞いたと言う話 【放送事故】フジテレビが淡路島民に「電車動いてますか?」と質問 「淡路島は電車ありません」 - NAVER まとめ だいたい見てると「電車無いのを知らずに聞いてしまった」のを叩く向きに思えます。実際のところ、聞いたこと自体はNGなのでしょうが、これをシステム開発の話に置き換えると見えるものがある気がしました。 以降はJavaの語彙で書きますが、これって NullPointerException っぽいなと。 コードっぽい何かで書いてみる こんな感じ。 運行状況 = 淡路島.get路線().get運行状況(); get路線() が何を返すのか知らないけど、これが nu

    「淡路島の電車の運行状況を聞いた話」をシステム開発に置き換えてみる - 日々常々
    kei_kei
    kei_kei 2013/04/14
    なかなか大事な話。
  • 「アジャイル」と「ウォーターフォール」 - Digital Romanticism

    アジャイルがダメだと思う7つの理由へのだいぶ遅い反応 導入 もうだいぶ前の話になってしまいましたが、アジャイルに関するブログエントリ「アジャイルがダメだと思う7つの理由」は予想以上に波紋を呼び、それに呼応していくつものエントリが公開されました。発端となったエントリに関していうと、通常であれば必要となる数々の留保事項や前提事項を書かずに切り込んでいるという点において、間違いなく「煽り」であると言えます。ただ、「アジャイル」という言葉をとりまく数々の事象をかなり的確に指摘することによって、「アジャイル」という言葉をパブリックな場所で語っている少なからぬ人たちに対して、(意識的か無意識的かは問わず)ある種のポジショニングを強いたという意味で、実にいい釣り針なのではないでしょうか。 個別の論点に関する「アジャイルでは全体スケジュールにコミットできない」「いや、アジャイルだって全体スケジュールにコミ

    「アジャイル」と「ウォーターフォール」 - Digital Romanticism
    kei_kei
    kei_kei 2013/04/04
    やり方じゃなくて組織構造の問題、ということか。
  • 設計と実装の狭間で - 急がば回れ、選ぶなら近道

    ・現状 ・・・相変わらず溝は埋まっていません。希望の星と目されたDSLは現時点ではかなりの不発弾に近い感じで、設計系クラスターはあまり元気がないですね。翻って見れば、設計と実装が最も近かった時代は、なんのことはなくて、自分も含めて(懐古趣味の老人を除いた)皆さんが毛嫌いするCOBOL+汎用機の時代だったかもしれないという意見すら出る惨状です。あの時代以降、 UMLが登場し、まさに銀の弾丸状態で、それ以降Unified Processやら何やらが、インフルエンザの如く流行りました。ま、その延長上に今のアジャイルまでの流れがあるわけですが、気がついてみれば、これほど設計と実装が離れてしまった時代もないという状態になってしまっています。・・・設計と実装の狭間は、相変わらず埋まっていない気がします。 ここへ来て、実装技術の多様化は、カンブリア紀を思わせる拡大の一途になっています。開発環境のみならず

    設計と実装の狭間で - 急がば回れ、選ぶなら近道
  • 5分で分かる、「スクラム」の基本まとめ

    5分で分かる、「スクラム」の基まとめ:開発チームを改善するためのスクラムTips(8)(1/2 ページ) 「スクラム」は、アジャイル開発の手法群の中でも、「チームとしての仕事の進め方」に特化したフレームワークだ。スクラムの知識を応用して、開発チームの日常をちょっとリファクタリングしてみよう。 これまで、アジャイル時代のチーム・マネジメント手法として主流になっている「スクラム」の手法を紹介してきました。今回は総集編として「スクラムの基」をコンパクトにまとめます。 そもそもスクラムとは スクラムは、一言でいえば「チームで仕事の進めるための枠組み(フレームワーク)」です。 もともとはソフトウェア開発プロジェクトを成功させる仕組みですが、技術的な要素は取り除かれ、多くのチーム作業に共通して適用できる要素だけが残りました。そのため、ソフトウェア開発以外のチームにも適用できるのが特徴です。 ●バッ

    5分で分かる、「スクラム」の基本まとめ
    kei_kei
    kei_kei 2012/08/10
    後で読む。