何か着ていればいいよ

ソフトウェア技術者の日常や技術の話を書こうと思います。

コーディング

twemproxyのソースを緩く読む

github.com これを緩く読み始めた。 エントリーポイントは /src/nc.c ありとあらゆるところにプリフィックスとして"nc"が振られている。 うーん?こういうものかな? twemproxyとは?みたいのは面倒だから書かない。 もう、これは自分用のメモと割り切るよ!…

PHPに入門したよ

<注意> 初心者が単に感想を書くだけです。以下読む意味はほとんどありません。 PHPに入門して最近覚えたというか知ったこと。 おまじない どの入門用ソースをみてもおまじない的なphp用のタグが必要だということ。 本当にこれ要るんだろうか? なんかものに…

Rubyの配列(あるいはオブジェクト)の振る舞いがよく分からない。

表題の件について、今日は色々はまっているのでその経緯を残しておく。 環境 OS:mac os x ruby: ruby 2.0.0p481 状況 ruby koansのabout_dice_project.rbを解いていて以下の状況にぶち当たった。 あるクラスのメンバ変数*1を配列クラスでもっており、そのcle…

僕はこうして失敗しました - 転職面接でのコーディングについて

ここ数ヶ月ソフトウェアエンジニアとして転職面接をしていて非常に苦手だったのが 面接のその場でコーディングってやつ。 というわけで、その失敗経験をちょっと記録しておきます。 いきなりコーディングはやばい 面接官が入ってきて、自己紹介をするや否や…

第二回表参道.rbに参加してみた #omotesandorb

表題の通り参加してみました。 表参道.rb #2 (2015/07/02 19:30〜)omotesandorb.connpass.com なぜ参加したのか? Rubyをプロダクトとして書いていないがRubyコミュニティに顔を出してみたかった。 でも、歴史のあるコミュニティでは新参ものが浮きそうだし…

ループを使わないFizzBuzz問題の解き方

プログラマの登竜門FizzBuzz問題について。 ループを使わない解き方を書いてみた。 通常、この手のループを使わない系は関数の再帰呼び出しで解くのだけど そこをもう一捻りしてコンパイル時に全てのループが展開されている方法をやってみた。 つまり、C++の…

Native2AsciiのJavaScript版を作ってみた

前職でJavaで他言語Webアプリケーションを書いている時に欲しかった機能をモヤモヤが残っていたので作ってみた。 超適当なものだけど、思ったより簡単にできたので以前困っていた時につくってしまえばよかった…。 やりたかったこととその経緯 Eclipseで開発…

Unit Testについてちょっと思ったこと

問題が出がちな場所に限ってUnit Testが無かったりする。 Unit Testが無いということと不具合が発生する箇所の因果を立証するような根拠はない しかし、Uni Testが書きづらい設計や動作確認が不十分であることなど、経験上は相関関係があると思う テストケー…

プログラミング上の勘所についての小ネタ

最近、プログラミング関連で思った事なんか雑多なものを適当に書き残す。 条件分岐の考え方 条件分岐を意味する部分をifやswitchではなく例外やgotoで実現してしまうというアンチパターン 自分にも経験があるが、やっているときは便利やんこれと思っていても…

クソコードをクソで終わらせないために僕らが出来ること

あけましておめでとうございます。 新年最初のエントリーですが、こんな話題でなんだかな?って感じもしますが気にしない! 本題 仕事でプログラマーをしていると避けられないのが、既存のくそコードです。 このエントリーではクソコードを プログラマーが読…

アジャイルチームでコードレビューを実施する上での障害と対策

このエントリは アジャイルCasual Advent Calendar 2014 の 3 日目のエントリです。 前日はa_suenamiさんのPDCAに関するお話でした。 "アジャイルチームでコードレビューを実施する上での障害と対策" ということで、現場で自分が今まで試行錯誤をさらしてみ…

コードレビュー中に『う゛んぎぃ!!!』ってなった話

とあるシステムのコードレビュー中の話 こんなコードを見てイライラした。 ※変数名やコメントは業務コードだったので実際のものとは変えています。 この短いセンテンスの中にイラッと来るポイントが複数あって凄い! if文ごとにコメントがあるがifの条件をま…

プログラマーとして夢想する作り捨てを許さない組織文化

自分がソフトウェア開発プロジェクトにプログラマーであったり、プロジェクトリーダーであったり色々な役割を担いながら参加してきて、常に悩まされてきた問題についてちょっと考察してみようと思います。 それは作り捨てと個人的には呼んでいる、小規模な案…

座右の銘がマジすぎて引かれた話

もう3年くらい経つかな。以前の現場で現場に加わって一ヶ月目くらいに歓迎会を開いてもらった。 厳しいリリース済みの製品の不具合対応がメインで日々終電帰りの厳しい環境だったけど、チームの方々は気の良い人々でデスマプロジェクトをなんとか仕上げた直…

Webアプリケーションの常識集

タイトルは調子こいて大きな話になっていますが、自分がWebアプリを開発する上で常識だと思っている事。 常識集といいつつ、アンチパターンを集めている気もするなぁ。 コンテキストが書いてないんでアレなんですが、とりあえず列挙しておきたかった。 実装…

スペルミス集作っているよ

長い事プログラマーをやっているとさけて通れない英語のスペルミス。*1 最近はEclipseなどのIDEでもある程度チェックしてくれたりするのですが、camel cas とかでクラス名や変数名に紛れ込ませてしまうと正直、見つけ出すのは困難で見逃しまくりです。 自分…

周りで見かけたxUnitアンチパターン

年初から進んでいたプロジェクトがほぼ収束し、 人も多少入れ替わって新しいプロジェクトのサイクルが始まっております。 そんな中、プログラミングに不慣れなメンバーが何人か居る中で見受けられた xUnitのアンチパターンをいくつか書き残しておきます。 テ…

確かにそれでも動くけど古い書き方だよね問題

.NetのLinqやJavaの拡張for文とか、 古い書き方の互換性をもちつつも新しい書き方が出ているものに関して 基本的には古い書き方を新規で作り込みたくない。 でも、メンバーの中には業務で古いソースしか触ってなかったために、 新しい書き方を知らないって事…

xUnitによるUnit Test作成の心理的障壁を突破する方法

まず自分のチームでは機能開発のチケットにいちいち明記しないでもソースに対するxUnitでのカバレッジ*1を出来るだけ100%にしておく事になっており、レビューでは当然テストもレビューする形になっています。 そういったUnit Testが当たり前の状態に4-5年前…

コードスニペットをファイルで管理していたがGistに上げた方が良いと気づいた話。

タイトルが全てという感じです。 が、とりあえず経緯もふまえて残しておきます。 元々はどうしていたのか? 自分用の簡単なプログラム類は"Programs"というフォルダ配下に一応言語ごとにフォルダ分けしてしまっておりました。 そして、言語のフォルダ内にス…

S2Dao.NetでTable定義と異なるEntityを使う方法

Seasar.NetのS2Dao.NetでDaoにSql属性を付与してSelect文を書きたかったのだけど、Entityとは異なる(複数テーブルをJoinした)形で書きたかったのでその方法をメモ。例えば、こんなSQL select t1.id, t21.value option_value, t22.value additional_value f…

クラス設計のとっ散らかりをなんとかしたい(インスタンス生成)

とっ散らかりポイント インスタンス生成 DTOなんかのデータ保持 ロジックの責任 別システムとのI/O これらのそれぞれ、もしくは全部が一つのクラスの一つのメソッドにあったりするととっ散らかるわけですね。 で、上記のポイントについてとっ散らからない方…