タグ

ブックマーク / hiroki.jp (15)

  • 普通のプログラマへ良いコードを書く方法を教える!リーダブルコード | Act as Professional

    私はすばらしいコードを「エレガントなコード」と呼ぶ@HIROCASTERでございませう。 まず、はじめに。書はハッカーは読まなくて良い。普通のプログラマに読んで欲しい。 デザインパターンやリファクタリングよりも、書に書かれていることの方がプログラマは毎日考えて、意識してコードを書くのだ。 よって、普通のプログラマならば書を読んでおきたい。普通のコードを書く人にオススメの1冊だ。 例えるならば、バク転や月面宙返りをする方法ではなく、日常的におこなわれる「歩く」という行動に着目し、姿勢良く、美しく、シッカリ、確実に歩くための方法が書かれている。 書の目的は、君のコードをよくすることだ。 「良いコード」の定義とは、コードを読んだときに最短で理解できる様に書かれていることである。そう、書は伝えている。 では、良いコードを書くための方法を具体的に学んだり、教えられたりしたことはありますか?

    普通のプログラマへ良いコードを書く方法を教える!リーダブルコード | Act as Professional
  • 「リフォーム Rails app」というトークをしてきました | Act as Professional

    Rails Developers Meetup 2018 Day 3 Extremeで「リフォーム Rails app」というトークをしてきました。 既に開発されているRails appのプロジェクトなどに参加したときに、改修ポイントをある程度機械的に見つけて、どうやって、アプリケーションとして改修していくのか?という考え方やポイントについて話ました。 トークの内の何かをTipsとして持ちかえっていただき、現在運用されているRails appの技術的負債の返済や仕組みづくりの参考にしていただけたら幸いです。

    「リフォーム Rails app」というトークをしてきました | Act as Professional
  • 2017年1月1日に閏秒が実施予定、システムの管理者は注意が必要!! | Act as Professional

    来年の元旦に閏秒の実施が決定されたようです。全世界で新年から仕事の人も増えそうです。 IERS(国際地球回転・基準系事業)から正式に発表があったようです。 日時間だと2017年1月1日 8時59分59秒のあとに8時59分60秒が挿入され、次に9時0分0秒となります。 直近だと2015年7月1日にうるう秒が実施されました。 そのときにまとめた、主にLinuxサーバにまつわる対応が以下の記事です。 閏秒を迎えるにあたってLinuxでは何をすべきか?基的には上記の記事と同様の対応をとれば、問題ないと思われます。 引き続き、情報があれば更新していきたいと思います。

    2017年1月1日に閏秒が実施予定、システムの管理者は注意が必要!! | Act as Professional
  • webmockとvcrを利用してHTTPのmockを作成する | Act as Professional

    RubyRailsで外部APIを利用するソフトウェアを開発しているときに、テストで実際に何度もAPIに問い合わせにをしていたら、遅くて話になりません。ましてや、外部APIがメンテナンスなんてことになったら、開発が止まってしまいます。 そこで、webmockなどを利用して、HTTPリクエストやレスポンスのmockを作成することが望ましいです。 vcrを組み合わせて利用すれば、初回だけ実際にHTTPリクエストとレスポンスを記録して、2回目以降は記録したデータからmockとしてデータを返すように簡単にできます。 webmockとvcrのインストール方法Gemfileに以下のように記述する group :development, :test do gem 'webmock' gem 'vcr' endgemをインストールする $ bundletest/test_helper.rbにVCRに関する

    webmockとvcrを利用してHTTPのmockを作成する | Act as Professional
  • pryをMySQLのクライアントのようにテーブル表示する | Act as Professional

    pryはいざというとき、便利だなと思う@HIROCASTERでございませう。 hirb-unicodeを使って、pry操作中のActiveRecordの結果をSQLの結果っぽく表示します。 通常は以下の様な表示になります。 ちょっと、よく見ないとわかりづらいですよね。 それが hirb-unicode によって、 この様にテーブル表示してくれます。件数が多くあると、通常通りの表示に比べて、とても見やすくなります。 また、文字が多くターミナルの横幅が足らなければ、自動的に この様に表示します。MySQLを利用している人にはおなじみの表示です。 導入方法pryやpry-raisを導入していることを前提とします。 Gemfileに gem 'hirb-unicode'と、記述して、 $ bundle installなどをしてgemをインストールします。 次に .pryrc ファイルを作成します。

    pryをMySQLのクライアントのようにテーブル表示する | Act as Professional
  • tigのキーバインドを変更して高速に大量のgitログを確認する | Act as Professional

    大量のコミットログを見て、一仕事終えた@HIROCASTERでございませう。 gitリポジトリのコミットログを大量に確認する必要があって、GitHubを使っていたのですが、Web上からコミットログを見ると、数個ならいいけど、数十個超えると、とてもストレスがたまります。クリックするだけで面倒だし、指痛い。 GitHubMac専用クライアントだとどうかなぁー。と試して見たけど同じようなもの。 そこで、CUI専用のgitリポジトリブラウザである「tig」を試したところ、めちゃくちゃ高速に大量のコミットログと差分を確認できました。 効率的に閲覧するためにキーバインドを変える設定などをしました。 みなさんも日頃の大量のコミットを見る人は、こうすると捗ります。

    tigのキーバインドを変更して高速に大量のgitログを確認する | Act as Professional
  • git mergeとgit pullのデフォルト挙動を設定できるようになってるGit | Act as Professional

    Gitもいろいろ増えているんだと改めた@HIROCASTERでございませう。 過去のGitのバージョンでは、設定できないと言われていたことについて、最近のGitでは設定できるようになっています。(と、言っても何ヶ月も前に追加されている内容ですが…) そのなかでも「これが欲しかったんだ!」と思われる2点について取り上げます。 git merge –no-ffgit mergeをおこなう際には –no-ff をつけることによって、トピックブランチでおこなわれたコミットが明確にわかるようにするかと思います。 以下の図だと、Topic-bは別ブランチでコミットされましたが、masterへマージする際に ff だったために履歴を見ると別ブランチでコミットされたかどうかが判断できません。 一方、Topic-CはTopic-B同様に別ブランチでコミットされましたが、masterへmergeされる際に –

    git mergeとgit pullのデフォルト挙動を設定できるようになってるGit | Act as Professional
  • あの「ウノウ」って会社を覚えてますか? | Act as Professional

    元ウノウな@HIROCASTERでございませう。 それはそれは、ちょっとだけ昔の話、とても風変わりなウノウ株式会社というのがありました。 ウノウという会社の昔話をしたいと思います。 ウノウラボのラボブログこの会社がはじめた画期的な文化の1つは、ラボブログと呼ばれる在籍するエンジニアが直接技術情報をブログとして公開するというものだ。 今では業界各所でおこなわれていることだが、当時は在籍するエンジニアが顔と名前を出して、技術情報を惜しげもなく公開することに注目された。 このブログの読者も、当時はウノウラボのブログをよく読んでいた人もいるのではないだろうか。 ウノウの歴史ではかなり後半の2010年になるが、私もウノウラボを執筆できたことが嬉しかったです。 もちろん、ブログを書く時間も業務時間として認められていました。 勉強会で会場を提供するなどの取り組みなど、今となっては常識となりつつあるような

    あの「ウノウ」って会社を覚えてますか? | Act as Professional
  • Gitの内部動作をイメージで理解する「図解 Git」 | Act as Professional

    とりあえず、毎日Pull Requestがきている@HIROCASTERでございませう。 GitHubを理解するうえで、Gitも理解しなければなりません。 といっても、とても複雑であることは否めません。 今回紹介する「図解 Git」でGitの内部でどのようになっているのかイメージで理解してみましょう。 週末を利用すれば十分に読めるボリュームですので、読んでみてはいかがでしょうか。 図解 Git“A Visual Git Reference” の翻訳版が 図解 Git です。 内容は下記の様にGitのコマンドをベースとして、Git内部でどのようなやりとりがおこなわれているか図解しているものです。 Git関連のドキュメントに目を通していると、当たり前のように「ステージ」などというGit独自の用語が登場しますが、なかなか説明されていないケースがあります。 今回の図解 Gitに目を通しておけば、あ

    Gitの内部動作をイメージで理解する「図解 Git」 | Act as Professional
  • 「githug」でgitの基本操作を算数ドリルみたいに学ぼう! | Act as Professional

    GitHubのイベントである「The GitHub poweredby Agile渋谷 〜日のSOCIAL CODINGの今を見る〜」の懇親会を受付始めました@HIROCASTERでございませう。 イベント参加者以外でも参加可能のため、イベントは補欠だったけど、どういうふうにGitHubを使っているのか聞きたい人は、ご参加ください。(イベント参加者優先で、空気読んで登録してください) イベントではGitHubの話をするので、Gitが使えることが前提になっています。 そこで、Gitの基操作方法を学べる「githug」を紹介します。 githug Gazler/githug「githug」はgitの基操作を実践的に学ぶための良いソフトウェアです。 特に他のバージョン管理システムを使ったことのある人がgitの基操作だけを学ぶだけならちょうど良い。 インストールgemで公開されているのでイ

    「githug」でgitの基本操作を算数ドリルみたいに学ぼう! | Act as Professional
  • これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional

    いままで勉強会に顔を出し、すばらしいエンジニアと数多く会うことができた。そして、スーパーエンジニアと共に仕事をすることもできたし、できている。そんなスーパーエンジニア達が持っていた習慣を僕の経験と視点からまとめてみる。 自分が使う道具を厳選して選んで手入れをしている エンジニアでいえばエディタやツールなど。皆が使っているIDEやエディタを何も考えずに使い始めたりしない。 厳選したエディタやツールを使って、手になじませるのである。手になじませるというのは、2つの意味がある。 1つは操作性に慣れること。呼吸をするように自然に、キーボードの上を駆け回る心地よいリズムを奏でるエディタを選ぶ。 2つめは、自分に合わせて拡張しているということ。プラグインのON/OFFだけではなく、オリジナルのショートカットを設定し、適切なハイライト、シンタックスのチェック、コーディングルールのチェック、様々な言語への

    これはマネしたい!スーパーエンジニア達の習慣 | Act as Professional
  • プロとしての行為 Act as Proffesional

    事を抜く、おざなりにする 朝、昼、夕を熱中しすぎて抜いてしまう。ブドウ糖は蓄えておくことができません。定期的に栄養を取らないと脳がエネルギー不足となって、生産性の低下を招きます。凡ミスが多くなってくる。 きりの良いところで必ず事をとること。事の間隔があきすぎることがないように注意する。 生産性のないことに2〜3時間熱くなる 落ちついてコードを読み、設定を直せばすぐに解決するバグを、憶測で○○が悪いのかな?とあれもこれもと手を出すうちに2,3時間を費やしてしまい疲弊してしまう。 感情を抑え、物事を論理的に考える落ち着きを取り戻そう。 何を完了したら仕事が終わりなのかを理解していない コードを書けば仕事は終わりですか?QAやテストやドキュメントなどはいりませんか?誰に承認をえるのですか?これら、仕事として必要なことに注意を向けずに仕事を終わったと思ってしまう。当に足りないことはあ

    プロとしての行為 Act as Proffesional
  • プロとしての行為 Act as Proffesional

    僕が新社会人になったときには、「このを読んで学ぶと良いよ!」なんて、紹介してくれる先輩がいなかった。 だから、無駄な書籍を読んで、あんなクソな読んでる暇があったら、この読んでおけば良かった。と、何度も思った@HIROCASTERでございませう。 新社会人の皆様に技術書は高価なので、厳選してオススメを紹介します。カテゴリ・言語別で上の方に並んでいる者が初級者にオススメ、下にいくほど、上級者向けです。数ヶ月かけてステップアップすれば良いのではないでしょうか。 新しいプログラマの教育担当者やメンターになった人は、この記事を教えてあげれば良いんじゃないかな。

    プロとしての行為 Act as Proffesional
  • プロとしての行為 Act as Proffesional

    心底、プログラマとして生きていくのが幸せなんだなと思える人に出会ったことのある@HIROCASTERでございませう。 プログラミングが上達するベストプラクティスってあるんでしょうか? 大学でコンピュータ教えている教授なんかは、そのあたり教えてくれるんでしょうか? あなたの先輩は教えてくれましたか? 昔ながらの職人がいう、見て、まねて、盗め。ですかね? 僕の経験で、いくつか書いてみました。 毎日コードを書くとにかく毎日コードを書いている。 息を吸うように、歯磨きををするように、顔を洗うように、事を取るように毎日コードを書いている。 テストコードも書く動くソフトウェア側のコードだけでなく、テストコードも書いている。 必然と設計も考える癖が付くわけで…。 ソフトウェア全体を仕上げるまで書く例えば、小さなメソッドだけでなく、クラス全体を。 ソフトウェアとして動作するまで全体を。 全体を仕上げるま

    プロとしての行為 Act as Proffesional
  • mod_pagespeedでWEBの表示をビックリするほど高速化 | Act as Professional

    $ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb $ sudo dpkg -i ./mod-pagespeed-beta_current_amd64.deb $ sudo /etc/init.d/apache2 restart基的には以上で終了です。 詳細な設定細かいレベルでの設定をしたい人や導入したことにより問題が発生して人は設定を変えましょう。 設定ファイル /etc/apache2/mods-enabled/pagespeed.conf ModPagespeedRewriteLevel CoreFilters特に設定をしなくてもCoreFiltersが設定されています。(*1) Filterのドキュメントを見る限り、以下がCoreFilterに含まれているようで

    mod_pagespeedでWEBの表示をビックリするほど高速化 | Act as Professional
    machupicchubeta
    machupicchubeta 2010/12/27
    apache
  • 1