タグ

ブックマーク / blog.jnito.com (20)

  • プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try

    今回のエントリでは先日、僕が勤めているソニックガーデンで話題になったプログラミング関連の小ネタを書きます。 それは何かというと、「プログラミング初心者は変数名やメソッド名を略さない方がいい」という話です。 長い変数名やメソッド名はつい略したくなります。 実際、僕も長い名前を略すときはよくあります。 ですが、略称を使うのは長年の経験から「この略称は一般的だから誤解を招くことはきっと少ないだろう」とか「前後の文脈から、変数の中身は誰が見ても明らかだろう」という想像が付いた場合だけです。 一方、プログラミング初心者の人は経験が浅いため、「一般的かどうか」とか、「誤解が発生しないかどうか」といった判断ができません。 そのため、他の人が見たときに「え、何この変数名?」と思ってしまうような略称を付けてしまう恐れがあります。 たとえば、先日のコードレビューで、初心者の人がrev_noという名前の変数を定

    プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try
    kiyo_hiko
    kiyo_hiko 2020/10/20
    reverse_nums派。あとスコープ短いと変数も短くする。例題が数行メソッドならns = [1,2,3,4,5]; sn = ns.reverse; sn.map(&:to_s).とし、メソッドのコメントを厚く書く。あと略称の暗黙知は信用しない。幾つかの英語サイトを見て決める
  • ITエンジニアが知っておきたい、軽減税率制度(のイヤなところ) - give IT a try

    はじめに 僕のは兵庫県西脇市で「Coupé Baguette(クープ バゲット)」という小さなパン屋さんを営んでいます。 その関係で、先日国税庁から消費税の軽減税率制度に関するお知らせが届きました。 「軽減税率制度?あ〜、なんかそんな話もあったような」と思いながら資料を読んでみたところ、「げげっ、軽減税率制度ってこんな面倒な仕組みになってたの!?」とビックリしました。 というわけで、このエントリでは軽減税率制度の概要(と、ITエンジニアが困りそうなポイント)をざっくりとまとめてみます。 おことわり 僕自身は税理士のような税金の専門家ではないため、100%正しく理解しているとは限りません。 エントリ内に怪しい内容があればコメント欄等でご指摘いただけると助かります。 国税庁の資料から抜粋した、軽減税率制度の主なポイント 我が家にも届いた「よくわかる消費税軽減税率制度(平成30年7月)」(PD

    ITエンジニアが知っておきたい、軽減税率制度(のイヤなところ) - give IT a try
    kiyo_hiko
    kiyo_hiko 2018/08/18
    “既存の情報システムでは「単純な消費税率の変更」には対応しているものが多いと思いますが、品目に応じて消費税率を変える仕組みまでは用意していないのではないでしょうか”
  • シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try

    はじめに 先日、とある知りあいのRubyプログラマからこんな相談を受けました。(内容はちょっとボカしてます) 社内のコードレビューでもっときれいなコードを書けるようになった方がいい、と言われました。 「きれいなコードを書けるようになれ」と言われても、具体的にどうすればいいかわかりません。 伊藤さんのアドバイスを聞きたいです。 この内容だけだとどんな問題があるのかわからないので、実際に指摘を受けたRailsアプリのコードを見せてもらいましたが、確かに「もうちょっと頑張りましょう」と思うような点がチラホラありました。 ただ、具体的にどうすればいいの、という答えは一言では言えません。 というわけで、今回のエントリではこの悩みを解決するのに参考になりそうな話をあれこれ書いてみようと思います。 (その前に)もくじ かなり長い記事になってしまったので、先に目次を載せておきます。 はじめに (その前に)

    シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try
  • 新人プログラマ向け・スキル向上のための具体的なアプローチと考え方 - give IT a try

    はじめに:「僕にもそんな頃があった」 先日、西脇.rb&神戸.rbの合同勉強会として「RailsプログラマのためのSQL勉強会」を開催しました。 この勉強会は出題者(=僕)が出したSQL問題を他の参加者が解く、というスタイルの勉強会です。 参加者の方の中には最近プログラミングを始めた、という人も何人かいました。 そういう人にとっては問題がちょっと難しかったので、ときどき僕がサポートに回って質問に答えたり、解き方をある程度教えたりしていました。 また、話がちょっと脱線して「僕が作ったこれぐらいのWebアプリは、伊藤さんなら何時間ぐらいで作れますか?」みたいな質問を受けたりもしました。 その中で言われたのが、 「説明されたらわかるけど、自分一人でこの答えにたどり着くのは無理です」 「えっ、そんな短い時間で作れるんですか」 といったようなコメントです。 そういったコメントを聞くと、「あー、僕にも

    新人プログラマ向け・スキル向上のための具体的なアプローチと考え方 - give IT a try
    kiyo_hiko
    kiyo_hiko 2016/03/23
    "3年"
  • Minitestの技術書としては日本初!?「RSpecユーザのためのMinitestチュートリアル(ベータ版)」を公開しました! - give IT a try

    はじめに 先日のブログでも書きましたが、電子書籍「Everyday Rails - RSpecによるRailsテスト入門」の追加コンテンツとして「Minitest版のテストコードとその解説書」を書いています。 執筆はまだ完全に終わっていませんが、キリのいいところまで書き終えたのでいったんベータ版としてリリースすることにしました。 追加コンテンツのタイトルは「RSpecユーザのためのMinitestチュートリアル」です。 今回のエントリではこの書籍の内容について紹介します。 2015.7.29 追記:正式版を公開しました! 2015年7月29日に正式版を公開しました。 詳しい内容は以下のエントリで紹介していますのでこちらも併せてご覧ください。 blog.jnito.com 「RSpecユーザのためのMinitestチュートリアル」 「RSpecユーザのためのMinitestチュートリアル」の

    Minitestの技術書としては日本初!?「RSpecユーザのためのMinitestチュートリアル(ベータ版)」を公開しました! - give IT a try
  • 「エンジニア病」を抱えたあなたに効く「デザインの考え方」 ~ソニックガーデン・デザインメンター対談のまとめ~ - give IT a try

    はじめに 先日、僕が勤務しているソニックガーデンのブログ記事で、弊社プログラマとデザイナーさんの対談記事が公開されました。 【前編】エンジニアの会社でデザインがうまくいくワケ〜「エンジニア病」にはダメ出しされよう 【中編】プログラミングとデザイン、やっていることはわりと同じ〜「デザインは感覚じゃない」 【後編】デザインできるプログラマの育てかた〜「デザインメンター制度」のキモは理由で納得! インタビューに登場する町田さん(@machida)と赤塚さん(@ken_c_lo)は僕もよく知っているとても素晴らしいデザイナーさんです。 素敵なデザインができるのはもちろん、HamlやSassなどプログラマ寄りの技術知識も豊富に持ち合わせていますし、物腰も柔らかくてとても相談しやすい方たちです。 業界の各方面から引っ張りだこなのも十分頷けます。 ところで、上の記事の中に出てくる「デザインメンター制度」

    「エンジニア病」を抱えたあなたに効く「デザインの考え方」 ~ソニックガーデン・デザインメンター対談のまとめ~ - give IT a try
  • リモート勤務と娘の子育て - give IT a try

    はじめに: 仕事場が新しくなりました 先日、新しく購入した仕事用の机と椅子が届きました。 新しい机と椅子をセッティングした今の僕の仕事場はこんな感じです。 ちょっとシックでクラシカルな雰囲気の仕事場になりました。 ちなみにリモート勤務を始めた当初はこんな感じでした。 机と椅子が新しくなっただけでなく、よく見るとサブディスプレイも大きくなってます。 ぶっちゃけて言うと、仕事用の機材や備品は会社のお金で購入させてもらっています。 給料が上がるのも嬉しいですが、こういう仕事道具に気前よくお金を出してもらえると、開発者として非常にモチベーションが上がります。とてもありがたいです! リモート勤務と娘の子育て ところで、僕は去年の9月ぐらいからリモート勤務を始めたので、現在で9ヶ月ぐらいになります。 まだまだマイナーな勤務形態なので、初めて会った方からは「リモート勤務ってどうですか??」と訪ねられる機

    リモート勤務と娘の子育て - give IT a try
    kiyo_hiko
    kiyo_hiko 2014/06/23
    いい話
  • ダメエンジニアの使い道 - give IT a try

    blog.jnito.com ↑のエントリで書いたダックタインピングとダメエンジニアの関係や考え方について、Matz先生の非常に興味深いコメントを読ませてもらいました。 以下にちょっと引用してみます。(またまた無断転載ですみません・・・) ダメエンジニアしか手に入らないという悲観的な考えと、ダメエンジニアでも鎖で縛れば使い物になるという極度に楽天的な考えが同居できるもんなんだな。— Yukihiro Matsumoto (@yukihiro_matz) September 15, 2010 「うちのエンジニアはダメダメだ」と「こいつらを矯正してなんとかまともな仕事をさせてやる」ってのは、一番ダメな組み合わせじゃないか。ダメなのはエンジニアじゃなさそう。— Yukihiro Matsumoto (@yukihiro_matz) September 15, 2010 そうですか、理解できません

  • 「動的型付言語は使い物にならない」か? - give IT a try

    はじめに RubyScala, 動的型付言語は使い物にならないという興味深いWeb記事を読みました。 はじめに断っておきますが、おいらは別にRubyが嫌いなわけではないですし、「動的型付言語は使い物にならない」と思っているわけではありません。 そもそもRubyや動的型付言語での大規模開発経験がないので、良し悪しを正当に評価できません。 ましてやScalaなんて文法すらまともに知らないので、Scalaバンザイ!なんて言えるわけもありません。 ただ、おいら自身も「Rubyとかで開発したらこんな問題が起きるかも〜」と想像していたことが、結構そのまま書かれていたのが印象的でした。 これまで中規模〜大規模なシステムはJavaやC#で開発してきたので、IDEやコンパイラの支援はたっぷり受けてきました。 Ruby on Railsで開発してみたい!という憧れはありますが、IDEの入力補完やリファクタリ

    kiyo_hiko
    kiyo_hiko 2013/03/03
    Matz氏の引用が興味深い
  • リモート勤務のようすを紹介します - give IT a try

    はじめに 僕のブログをよく読んでくれている方はご存知かもしれませんが、僕は兵庫県西脇市という片田舎でリモート勤務をしています。 常時リモート勤務になってから半月が過ぎ、なんとなく自分のワークスタイルが見えてきたので、ここでちょっと紹介してみたいと思います。 仕事場のようす まずは僕の仕事場をちょこっとお見せします。 もともと1.5畳ぐらいの小さな小さな書斎を仕事場にしようかと思っていたのですが、さすがに狭すぎるのでベッドルームに移動しました。 写真には写っていませんが、隣にはいつも寝ているベッドがあります。 デスクは昔から家にあったパソコンラックなので、そのうちもうちょっとゆったりとしてオシャレなデスクに変えたいな〜と思ったりしています。 休憩時間に弾いたら気分転換できるかな〜と思ってギターも持ってきてみました。 しかし、ギターを弾いてるとすぐに4歳の娘が「おとーさんうるさい!!」と苦情を

    リモート勤務のようすを紹介します - give IT a try
  • ソフトウェア開発プロセス残酷物語 - give IT a try

    昔々、あるところにジェイソンという、大変真面目な開発者がおりました。 彼がとある会社の情報システム部にやってきたとき、彼は社内システムのクオリティのひどさに衝撃を受けました。 情報システム部といっても、その会社では外注はせず、社内の開発メンバーがシステムを作っていました。 ジェイソンがそこで最初に担当したシステムは、見事なまでのスパゲッティコードでバグだらけ、データ設計も素人レベルでパフォーマンスも最悪、エラー処理もずさん、おまけにまともなドキュメントもなく、ちょっとした障害を調査したり、小さな改造を実施したりするのにも、大変な苦痛を伴うという、それはそれは大変なシロモノでした。 このシステムは元々エセーグルという、ちょっと変わった名前の開発者によって作られていました。 しかし彼はすでに別の開発チームに異動していて、こちらの質問には答えてくれますが、もはや人が直接手を動かすことはありませ

    kiyo_hiko
    kiyo_hiko 2012/08/27
    いろんな事考えることができておもしろかった
  • このたびソニックガーデンの7人目のメンバーになりました - give IT a try

    はじめに タイトルにもある通り、このたび株式会社ソニックガーデンで働くことになりました。 Rubyアジャイル開発に興味がある方なら、きっとみなさんソニックガーデンのことをご存知なのではないでしょうか。 代表取締役社長の倉貫さんをはじめ、選りすぐりの精鋭部隊が今回僕を迎え入れてくれたことは非常に光栄です。 会社のため、お客様のため、プログラマを憧れの職業にするため、日IT業界発展のために精一杯頑張ります! どうやって働くの? 一部の方はご存知かもしれませんが、僕は現在兵庫県西脇市に在住しています。 ソニックガーデンのオフィスは東京の渋谷にあります。 なので僕はこれから単身赴任・・・ではなく、地元西脇市からリモートで開発を行います。 わかりやすく言うと、在宅勤務です! もっとも、最初の3ヶ月ぐらいは研修期間として東京で働きます。 余裕があれば東京の勉強会等に顔を出すかもしれません。その際

    このたびソニックガーデンの7人目のメンバーになりました - give IT a try
    kiyo_hiko
    kiyo_hiko 2012/06/25
    「「お手玉をさせずにお手玉の曲芸師を雇う会社」の技術力はきっと底が知れてる」 中途の場合それまでにどんな姿勢でやってきたの?と問うためにも実技重要かなあと思うところです。
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • レガシープログラマさんと一緒にリファクタリングをする、の巻 - give IT a try

    前回のエントリではレガシープログラマの判断項目について、書きました。 その日、仕事でレガシープログラマさんの一人が書いたプログラムを一緒にリファクタリングしました。 レガシープログラマさんと言っても、おいらより年下の女性エンジニアです。 今回のエントリではそのやりとりについて書いてみたいと思います。 元のプログラムはどんなプログラム? そのプログラムは以下の判断項目に該当していました。 複数のデータをまとめて扱う際は毎回配列を使う。配列の上限数はありえなさそうな数を指定する(1000とか)。 基データ型(stringやint)と配列だけでデータ構造を表現しようとする。 クラスのフィールド変数をグローバル変数のように利用する。 言語はC#2.0で、CSVを読み込んでメールを送信するプログラムです。 ただし、同じFromとToの組み合わせに対しては一通のメール内の複数のコンテンツを含めて送信

    レガシープログラマさんと一緒にリファクタリングをする、の巻 - give IT a try
    kiyo_hiko
    kiyo_hiko 2012/02/28
    コードそのものは論点ではないと思うので剰り読んでなくて、意識のある人が、意識がなかったり、学習不足の人に教えるのは重要だと思う。まさに「先達はあらまほしきことなり」といった感じで、興味深い
  • 2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目

    ※2011.3.30追記 11個目の判断項目を追加しました。 また、「昔はね...」の補足説明を各項目に追加しました。 レガシープログラマ = モダンな言語のおいしい機能をうまく使いこなせていないプログラマ おいらは時々社内システムのコードレビューなんかをやっているのですが、「なんかちょっと前時代的だな〜」とか「ちょっと修正したらC言語でもコンパイルできそうだな〜」って思うことがよくあります。 おいらがレビューする言語は主にC#です。C#やJavaのような比較的モダンな言語のおいしい機能をうまく使いこなせていないプログラマを、ここでは「レガシープログラマ」と呼ぶことにします*1。 そこで、おいらがこれまでに見てきたコードの中から「これはレガシープログラマっぽい」と思った典型的な症例を10個11個挙げてみます。 レガシープログラマの判断項目 使われるローカル変数をすべてメソッドの最初に宣言す

    2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目
    kiyo_hiko
    kiyo_hiko 2012/02/06
    10+1 / 12.返却値を"ret"とかに入れて延々持ち続ける、とか
  • 僕がサクラエディタからVimに乗り換えるまで - give IT a try

    はじめに 恐怖のエディタ、Vim。 僕はこの間までずっとサクラエディタを愛用していましたが、最近Vimを使うようになりました。 ええ、Vimです。あのVimです。Viでもいいけど。 Vim・・・使いこなしている人はそれだけで玄人っぽく見られる伝説のエディタ。 実際にVimを使えばすさまじいスピードのコーディングが可能になる。(らしい) しかしそんな憧れだけで手を出しても大半の技術者は全く手に負えず、すぐに尻尾を巻いて元のエディタに舞い戻ってしまう恐怖のエディタ。 それがVimである。 ・・・はい、僕の中でVimやViのイメージはそんな感じでした。 実際、Unix/Linuxマシンのターミナル上で何度か(いやいや)使ったことがありましたが、まあ扱いにくいのなんのって。 「カーソルは十字キーで動くけど、どうやって入力するの? 」 「えっ? "i"を押せ? 」 「入力が終わったらESC? なんで

    僕がサクラエディタからVimに乗り換えるまで - give IT a try
  • 独自ドメインのWebサイトとメールアドレスをなるべくお安く作るためのメモ - give IT a try

    はじめに ちょっとプライベートの用件で独自ドメインのWebサイトとメールアドレスを取得することにしました。 今までほとんどやったことのない分野だったのですが、ネットを色々調べてると意外と手軽に、かつお安く取得できました。 備忘録としてここにメモしておきます。 対象者 独自ドメインのWebサイトやメールアドレスをなるべく安く取得したい人。 なおかつ、静的なページだけでなく将来的には簡単なWebシステムもネット上で作ってみたい人。 利用するサービス Heroku Ruby on Railsをインターネット上で動作させるために使用。5MBまでは無料。LINK GitHub Railsコード用のリポジトリ。無料で使えますが、フリープランだとコードはすべて公開されてしまいます。LINK バリュードメイン 独自ドメインの取得サイト。費用は.comドメインで年間1000円程度。LINK GoogleAp

    独自ドメインのWebサイトとメールアドレスをなるべくお安く作るためのメモ - give IT a try
  • Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編) - give IT a try

    2011.12.31 追記 後編を書きました。こちらもあわせてどうぞ。 Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(後編) - give IT a try はじめに 先日、FizzBuzz問題を使って社内プログラミングコンテストを開きました。 このブログでも書いた通り、なかなか興味深い結果になりましたが、一方で反省点もいくつか見つかりました。 特に問題が解けなかった人が出てしまったのは痛い誤算だったので、今回はできるだけ最後まで解けるような配慮をしてみました。 ただし、問題自体はFizzBuzz問題よりもずっと難しくしてあります。 今回もちょっと長いエントリになっていますが、よろしければ最後までお付き合いくださいませ。 前回の反省点 詳しくはこちらのエントリに書きましたが、簡単にまとめると 言語の得意・不得意が結果に大きく影響した 抜き打ちで実施したことがその

    Excel列名変換問題で第2回社内プログラミングコンテストを開催してみた(前編) - give IT a try
    kiyo_hiko
    kiyo_hiko 2011/11/14
    続・FizzBuzz。まず問1が15分ぐらい。「use List::Util qw/reduce/;$cs='XFD';print reduce{$a+26**($n++)*(ord($b)-64)}0, (reverse split //,$cs)」字数で言うとmapのsumを取ったほうが短い。問2がこれの拡張か。いけるかな?
  • FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try

    はじめに 先日、社内で初めてプログラミングコンテストを開催しました。 お題はかの有名なFizzBuzz問題です。 全員楽勝で解答するだろうと思いきや・・・結果はいかに!? ちょっと長いエントリですが、このコンテストの顛末をお楽しみください。 開催の動機と経緯 メンバーの向上心を刺激するために、なにか面白くて技術的に意味のあるイベントを開きたかった。 以前からFizzBuzz問題を全員で解いてみたかった。 FizzBuzz問題はプログラマなら解けて当たり前、というようなWeb記事をよく見かけていた。 これぐらいなら誰でも解けるだろうと自分も思っていたが、実際にやってみないとわからない。 そこで社内プログラミングコンテストを開き、みんなでFizzBuzz問題を解いてみたいと思った。 マネージャーに話を持ちかけたところ、すぐに賛同してくれた。 FizzBuzz問題以外の追加問題も作成したが、第1

    FizzBuzz問題を使って社内プログラミングコンテストを開催してみた - give IT a try
    kiyo_hiko
    kiyo_hiko 2011/10/07
    解けない人がいるというのは驚異的だが、そういうプチ・コンテストすらない俺の会社よりは良いのかもしれないとおもた。print(join("\n",map{!($_%15)?'fizzbuzz':!($_%5)?'buzz':!($_%3)?'fizz':$_}(1..$ARGV[0])));
  • 新卒者に何か言葉を贈るなら - give IT a try

    はじめに こちらのブログをはじめ、季節柄最近ちょくちょく新卒者向けのメッセージを書いたブログを目にするようになってきました。 これまで新卒者に贈るメッセージなんてわざわざ考えたこともなかったのですが、もし自分なら何て言うんだろうなあと考えてみました。 最初は全然思いつかなかったのですが、しばらく考えて「おいらだったらこう言うかな」と思ったのが、下の2つです。 現場を疑え。先輩の言葉を鵜呑みにするな。 世間で通用する職人を目指せ。 なんでこんなことを言うのか? その理由を以下に述べます。 現場を疑え。先輩の言葉を鵜呑みにするな。 いきなり毒々しいメッセージですね。 でも実際、日IT業界で何もかも恵まれた職場なんてきっとほんの一握りなんじゃないかと思います。 プログラマやSEをやったり、IT関連の会社を経営したりするのに、何か特別な資格が必要になるわけじゃありません。 みんな「自称プロフェ

    新卒者に何か言葉を贈るなら - give IT a try
    kiyo_hiko
    kiyo_hiko 2011/07/04
    「全然基本がなっていない「お山の大将」状態だった、なんてことも」ネットが普及していつでも大海が見れるのに、似非グルが絶滅しないのが不愉快でしょうがない。「OJTとかほんと要注意」全力で同意です
  • 1