サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
おみそ汁
hamuhamu.hatenablog.jp
先日、Twitterでこのような投稿をしました。 300冊ほどある技術書を処分します。 今では店頭で手に入らない絶版の本や古典もあります。 売るのめんどいから処分。 八王子まで引き取りにきてくれるなら無料で譲渡します。#技術書 pic.twitter.com/rsAZhjUecM— はむ@フリーランス (@secret_hamuhamu) July 11, 2018 私の自宅でずっと眠らせていた技術書を処分するついでに熱心なエンジニアに譲渡しました。 すると結構バズって(狙い通りだけどw)引き取り手がたくさん現れてくれました!! 東京の端っこまで足を運んでくれてありがとう!(^^ 夜中の12時過ぎに来てくれた猛者もいました笑 応募が多く残念ながら全員に引き渡せなかったですが、こんなにも熱心な方が多くてエンジニアの世界は素晴らしいなと再確認しました。 今回の譲渡の目的は「未来への投資」です。
Vimiumは、Chrome拡張アプリで、Chromeをvimライクに操作できるvimmer感涙のものです。 私も数年前から愛用してますが、とても便利なショートカットキーがたくさんあるのに一部しか活用していなかったので、 便利そうなショートカットキーはまとめておく。 Vimiumをインストールしていない方は、こちら Vimiumをインストールすれば、まずChrome上で、 ? を押下してみましょう! すると、Helpが出てきます。 Usage 全部を紹介してられないので、私がよく使うものを抜粋。 キー j スクロールダウン k スクロールアップ gg スクロールを一番上に持ってくる G スクロールを一番下に持ってくる d スクロールを半ページくらいダウン u スクロールを半ページくらいアップ r リロード gs view-sourceを表示 yy 現在表示しているページのリンクをクリップボ
コード改善 meetup #3 に参加してきた。 参加三回目!!皆勤賞! 生々しい話を聞けるので、毎回楽しみにしてます( ・`ω・´) これまでの参加まとめはこちら。 hamuhamu.hatenablog.jp hamuhamu.hatenablog.jp どこに何を書くのか? pospomeさん どこに何を書くのか? from pospome www.slideshare.net あなたのそのPR、本当にリファクタリングって呼べますか? massa142さん slideship.com kenmaz.hatenadiary.jp レビューについて コードレビューで、コードの改善のハンドリングどうしてるのかみたいな話で盛り上がった。 必ずこういうレビューするとか、指摘したけどちゃんと修正してくれないどうしたらいい?とか。 はむは、レビューをどんな感じにしてるのって聞かれたので答えた。
新技術の導入を米国並みに!働き方を変えて生産性を高めるための8つの習慣 に参加してきたのでまとめ。 内容は、ソフトウェア開発の生産性やリーダーシップ、チームビルディングに関するものである。 講師の牛尾さん、ロッシェルさんともに軽妙かつ切れ味のある語り口で楽しかったです。 当日はFacebookを使ったワークがあったので、当日のワークの様子はこちら。 https://www.facebook.com/groups/1412459665471852 【発表資料】 docs.com 雑なまとめ アジャイル、スクラム、DevOpsが導入しにくい。 日本の文化的な問題によるところが多い。 日本のアジャイルは、USのアジャイルとは違う。 日本仕様にカスタマイズされている。 通称: Wa(和)gile そもそも本当のアジャイルを知らずにカスタマイズしているので、よいカスタマイズではないしアジャイルでもな
第1回 エンジニアリングマネージャー勉強会 に参加してきた。 自分は、エンジニアリングマネージャーではないがエンジニアリングマネージャーの立場の人の考えてることを知りたかったし 他者のマネジメント事例を知りたかったので参加しました。 最近、リーダシップ系の本をよく読むので見たこと聞いたことある内容があって理解を深めることができたように思います。 ただ、公開されてる資料が少ないので振り返って考えることができなくて残念。 自社の話ばかりなので、オープンにしにくい内容かもですね。 ボトムアップとトップダウンの技術組織への変革をしている話 speakerdeck.com キャリア・アンカー https://t.co/TUClGB3KM9#jpengmgr— はむはむ@AsKnowAs (@secret_hamuhamu) 2016年12月13日 blog.kentarok.org 「いるだけで成長
ギルドワークスさんで開催された 再演 リレーションシップ駆動要件分析 ☓ ドメイン駆動設計 ☓ アジャイル開発 に行ってきた。 発表された資料は、勉強会のリンク先にあります。 感想と質問したことをまとめておく。 RDRA for 越境アジャイル 到着が遅れたので、RDRA for 越境アジャイルから参加しました。 顧客やチームメンバーとコミュニケーションを円滑にするためモデルをどうやって表現するか? 話されていたことは理解できるし、現場で似たようなアプローチはしている。 でも、チームがモデルを共有できる状態になっていないし、まだまだ良くしていける余地はあるので以下の書籍を参考にしてみよう。 実は読んだことあるんだけど、活用できていない。 今日の話を聞いてもう一度読んでみる。 RDRA DDD Agile 改めて、日々開発メンバーや関係者と話し合うことは大事だなと思わされた。 スピーディーで
Comporserでライブラリをインストールをする際にバージョンを指定できます。 というより、今後も安定して使いたいのであればバージョンを指定してインストールしたほうが良いと思います。 なんでもかんでも、最新版がいいと思い込んでいる人はバージョン指定に dev-master を指定します。 ほんとに、 dev-master 使って大丈夫なのか検証してみた。 dev-masterとは? masterブランチのことで、comporser.jsonのバージョニングに指定するとmasterの最新コミット(Packgistに同期されている)で取り込みます。 ということは、バージョニングされる前の最新機能が実装されているが不安定なものをインストールすることになります。 セキュリティホールになるかもしれないし、バグっているかもしれません。 検証してみた hamuhamu/composer_dev-mas
関数型プログラムでよく聞く言葉である参照透過性。 参照透過とはどういうことなのかPHPで実装してみた。 参照透過性とは? 参照透過性とは、次のような特徴がある。 同じ関数であれば、いつ実行しても結果が同じであること。 引数が同じなら戻り値は、必ず同じであるということです 副作用がないこと global変数の使用などによる状態の変化がないこと ファイルのI/Oやデータベースも状態の変化に含まれてしまいますが、そこは局所化してなるべく切り分けましょう このような関数は、参照透過性のある関数とはいえません <?php function addDay($addend) { return date('Y/m/d', strtotime(sprintf('+%s day', $addend))); } addDay(1); 引数に数値を受け取り、現在の日付に+1をしていますが、実行する日が異なれば結果
XP祭り2016 で、登壇してきました。 当日は大盛り上がりで大変楽しく学びがありました。 スタッフの方、参加された方ありがとうございました!! 自分の発表資料と感想をまとめます。 当日の様子は、ハッシュタグ #xpjug で確認できます。 発表資料 TDDハンズオン from Ohasi Yuki www.slideshare.net TDDハンズオン です。 これから、TDDを学ぶきっかけになれば幸いです。 何か気になるところなどあれば、お気軽に @secret_hamuhamu までメンションください。 発表した感想 発表自体慣れてますが、今回発表時間が90分だったので準備が大変でした。 発表の素振りに手伝っていただいた方ありがとうございました。 TDDハンズオンは、いつでもどこでも話せるので、会社に呼んでくれたら喋りに行きます!!(๑•̀ㅁ•́๑)✧ 内容自体は、教科書通りという
この記事はzsh Advent Calendar 2015 - Qiita 21日目の記事です。 担当は@secret_hamuhamu です。 私のzshの起動が遅いので、zprofを使ったパフォーマンスチューニングのネタを投稿しようと思ってました。 しかし、プロファイリング結果、ボトルネックになっているのがzshではなくiTerm2だとわかりiTerm2の速度改善をネタにします。 zsh成分少なめですいませんm( )m iTerm2が遅い原因 iTerm2を起動した時に、こんな画面出ますよね? Last login: Sat Dec 19 16:16:21 on ttys000 You have mail. /private/var/log/asl というところにMacOSがシステムログを書き出しています。 iTerm2起動時に、Last loginやmail有無を出力しています。 こ
~マネジメントに悩める全てのエンジニアにささげる~ 伊藤直也の1人CTO Night に参加してきた。 めちゃくちゃ面白かったですし、参考になったので感想をまとめておく。 チームマネジメントとか文化改善ノウハウの参考になるかと思い参加しました。 私はマネージャでもないが最近チームビルディングとかスクラム的なことをやり始めた。 なので、目線がそういった視点での感想になります。 第一部【プレゼンテーション】最速で最高のアウトプットを生み出すチーム作りとは? speakerdeck.com CTOとVP of Engineering VP of Engineeringって初めて知った。 参考資料 freeeのエンジニアチーム 米国スタートアップにおけるCTOの役割とは? 問題解決ではなく、問題発見にフォーカス これはすごく共感できる話であり痛感している。 自分自身で問題発見をし解決することを繰り
タイトル通りです。 HomebrewでDockerをインストールしたので、まとめる。 環境構成 OS X 10.11.4 VirtualBox 5.0.16 Docker 1.10.3 docker-machine 0.6.0 インストール Homebrewを使って必要なツールをインストールします。 Dockerは、Linuxの仕組みの上で動いているためLinux上で動かす必要があります。 そのため、仮想化ツールが必要です。 今回は、VirtualBoxを使用します。 VirtualBox以外を使いたい方は、Supported Driversをご参照ください。 以下、インストールコマンド。 VirtualBoxのインストールには、brew caskを使用。 $ brew cask install virtualbox $ brew install docker $ brew install
Tell, Don't Ask は、オブジェクト指向プログラミングのよいとされる考え方の一つです。 Tell, Don't Ask は、日本訳で 求めるな、命じよ と訳されているのが、多いみたいですね。 オブジェクト指向というのは、役割を思ったオブジェクト同士が協力(コラボレーション)しながら機能(価値)を提供する。 オブジェクトが持つ役割が、あいまいだと良い設計と言われている 凝集度が高く結合度の低い ものは出来ません。 その為に、必要な考え方の一つなのが Tell, Don't Ask [求めるな、命じよ] である。 求めるな、命じよって言われてもピンきにくいですよね(´・ω・`)w シーケンス図とか書いてみて、解説します。 Tell, Don't Ask Tell, Don't Ask とは、 Ask ではなく Tell しなさいというものです。 オブジェクトAが、オブジェクトBを呼
先日、 コード改善 meetup という新しい勉強会が開催されたので行ってきた。 概要から漂う神イベントの臭い。 本勉強会は、チームでコードの改善を進めていくにあたって工夫している点をテーマに LT発表者によるお題のもと、参加者同士で対話を行う勉強会です。 * 開発文化の形成・チームビルディングへの工夫 * 設計の工夫 * 実装の工夫 * テストの工夫 * コードレビューの工夫 結論から書くと、予想通りいやそれ以上に熱いイベントだった。 資料 & Twitter circleci小ネタ集 / circleci_tips speakerdeck.com CircleCIをつい試したくなった。 オンプレJenkinsは辛いよね。 つらくないコードレビューの運用 speakerdeck.com どこのチームも独自の文化感があったり工夫が感じられてよかった。 「実力の高い人が低い人のレビューをする
今回は、Cartonを使ったモジュール管理の仕方を覚える。 RubyでいうBundlerです。 簡単にモジュールのインストールと管理ができるツールです。 環境構成 Perl 5.18 cpanm 1.7033 Carton v1.0.21 何故、モジュール管理が必要なのか? 例えば、昨日インストールしたモジュール(仮に X とします)を今日インストール(仮に X' とします)するとバージョンアップされていたとします。 その際、昨日コーディングした X を使ったコードが、 X' だと動かない可能性があります。 動かない原因は、インターフェースが変わっていたりなど理由は様々です。 dev(開発)環境と、本番環境が分かれている際など、モジュール管理してないとたまにトラブったりします。 dev環境でモジュールをインストールしてシステムを開発し、本番環境でモジュールをインストールしデプロイ。 dev
オブジェクト指向プログラミングで、例外処理をする際は 例外チェーン を意識せねばなりません。 例えばこのように、catchの中でさらに例外を投げ直していて(throw)例外チェーンをしていないとどうなるか? <?php class ExceptionChain { public function execute() { try { $this->method1(); $this->method2(); $this->method3(); } catch(Exception $e) { throw new Exception('execute error.', $e->getCode()); } } 以下、stack traceで ExceptionChainTest.php が実行コードです。 Time: 115 ms, Memory: 13.25Mb There was 1 error:
2016年1月21日に開催されたドメイン駆動設計のためのオブジェクト指向入門に参加してきました。 その時のスライドがこちら ドメイン駆動設計のためのオブジェクト指向入門 from 増田 亨 www.slideshare.net 発表内容のメモを残しておく 私のDDDに対する解釈が、混じったメモになります。 DDDは、インクリメンタルな設計である。 ドメインに対する理解(ベース)をもとに、オブジェクト指向で表現する。 ドメインモデルとは、ドメインの知識を鋭く解説する。 ドキュメントで、長ったらしく解説するより語彙が大事。 モデルと実装は結びつけろ。 開発の生産性 変更容易性 が、もたらされる。 日常で使われる言葉をコードで体現する。 ドメインを分析する人と実装する人が別れてはいけない。 ドメインを分析する人がコードを書き、コードを書く人が、ドメインを分析する。 クラスを作るためには、分析が必
PHP BLT #2というイベントに参加し、LTしてきました。 無料で会場をお貸しいただいた株式会社メルカリ様ありがとうございました。 第一回のPHP BLTに参加したかったけど、抽選に落ちたので第二回である今回に参加できて良かったです。 LTした LTさせて頂きました。 ネタは、James Carr氏のTDD Anti-Patternsという有名なエントリからTDDアンチパターンのカテゴリの中から、いくつかご紹介させて頂きました。 TDDアンチパターン 2016 01 13 from Ohasi Yuki www.slideshare.net みなさん、TDDしてますか? TDDは、よりよいコードを書くためのテクニックです。 テストを短いサイクルで書くことによりフィードバックループが高速に回り、開発スピードが増します。 テストを書く暇がないという話をたまに聞きますが、完全に逆です。 テス
MVCのコントローラのレガシーコードによくあるのが、ファットコントローラです。 最初は、単純なロジックだけだったのでコントローラに書かれていたロジックが月日を追うごとに肥大化して誰も読めなくなったというのはあるあるです。 ファットコントローラのビジネスロジックのテストコードを書くのはViewが絡む為、難しいです。 なので、ファットコントローラ = テストがないと言ってもいいでしょう。 そんな、ファットコントローラさんはGoFのデザインパターンの一つFacadeで撲滅できます。 ファットコントローラ 今回、撲滅したいファットコントローラ。 要件 ユーザが食べ物と購入数を指定し支払額を送信すると、購入額の計算をし商品の支払いを行う クーポンの発行も行う 何かしらエラーが発生したらログを残す <?php class TopController { public function buy() {
この記事はアルゴリズム Advent Calendar 2015 - Qiita 7日目の記事です。 担当は@secret_hamuhamu です。 私は、理系出身の人間ではなく数学もほとんどできないので、論理的に数学的に説明できていないと思います。 ですが、このような説明の仕方のほうが、わかりやすいよみたいなご指摘があれば是非コメントにでも書いていただけると幸いです。 やりたいことの説明 こちらの図を御覧ください。 矢印を期間だと思ってください。 青色の矢印と重なる期間がなければ、真。 青色の矢印と重なる期間があれば、偽。 ということを判定したいと思います。 オレンジ色の矢印が、真で緑色の矢印が、偽です。 予約システム等で使われる条件だと思います。 Xさんは、Aルームを2015年12月01日 ~ 2015年12月05日まで予約する。 他の人はAルームを、2015年12月01日 ~ 201
この記事はPHP Advent Calendar 2015 - Qiita 14日目の記事です。 担当は@secret_hamuhamu です。 みなさんは、PHPのテスティングツールに何をお使いでしょうか? Behat?PHPSpec?PHPUnit? 今日は、PHPUnitの便利な機能をいくつか紹介したいと思います。 なお、PHPUnitのバージョンは2015年12月14日現在時点で、最新安定版の 5.1 とします。 echoやprintなどの出力をテストする echoやprintといった出力を伴うものをテストすることが出来ます。 <?php class Hoge { public function output() { echo 'hoge'; } public function output2() { echo 'hoXX'; } } class HogeTest extends
この記事はオブジェクト指向 Advent Calendar 2015 - Qiita 1日目の記事です。 担当は@secret_hamuhamu です。 今回は、「Object Motherパターン」と「Test Data Builderパターン」についてまとめました。 これら、2つのパターンはテスト時に用いるパターンです。 異なるテストケースで、頻出して使うテスト用のインスタンスの生成に関するパターンです。 コードはPHPで書きました。 環境構成 PHP 5.6.13 概要 例えば、このようなバリュー・オブジェクトがあるとします。 <?php class Human { private $firstName; private $lastName; private $age; private $sex; private $address; public function __constru
PHPでDI( Dependency Injection )をします。 DIとは、日本語訳で依存性の注入です。 依存性というのは、クラスから別のクラスを呼び出している状態です。 例えば、犬が鳴いたら猫も鳴く。 <?php class Dog { public function barks() { $cat = new Cat(); $cat->meow(); } } Dogクラスのbarksメソッドは、Catクラスに依存しています。 こういったようにクラス内部で別のクラスを new しているものを Dependency Lookup といいます。 こういった依存をしている場合、テスト実践者ならお気づきだと思いますがテストが大変です。 Catクラスが出来上がってないと、テストできないしCatクラスがDBやネットワークを介するクラスであれば難易度が上昇します。 テストできるように依存しているク
ローカルのトピックブランチで作業後にmasterブランチにmergeしたい時に、コミットログが汚いとmasterのコミットログも汚してしまいます。 冗長なコミットログは、混乱を招くのでローカルでコミットログを綺麗にしてからmergeします。 コミットログの歴史を改変し綺麗にするのは、git rebaseを使います。 トピックブランチの作業ログの状態 [y-ohhashi@y-ohhashi-mac2] % git log --oneline d95e87e Aの修正 825daa0 Bの修正 919b3b0 Aの修正 このトピックブランチでは、Aの修正とBの修正する作業スペースでしたが、Bの修正のあとにAの修正が完了していないと気づきもう一度修正を加えてコミットしています。 やりたい事としては、Aの修正のログを1つに統合すること。 このままmasterにmergeしてしまうと重複したAの修
このページを最初にブックマークしてみませんか?
『hamuhamu.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く