プログラミング初めて○ヶ月間でやってしまった忘れられない失敗TOP3
プログラミング初めて○ヶ月間でやってしまった忘れられない失敗TOP3:
ユアマイスターアドベントカレンダー2018 の24日目の記事です。
街では光輝くイルミネーションが街を照らし、家族や恋人、友達と一緒にケーキを食べながらイエス・キリストの誕生を祝うクリスマスの前日になりました。去年は友人と一緒に美味しい肉を食べた記憶があります(笑)。
そんなクリスマスイブに今年やってしまった失敗談を記事にしたいとおもいました。今思えば、笑えてくる失敗もあるので、ぜひ読んで頂ければ嬉しいです。
人は失敗する生き物です。僕は一度も失敗したことないと言う人を聞いたことありません。失敗は成功の母ということわざがあるように人は失敗を重ねながら経験を積み、成長していきます。そして、経験が浅ければ浅いほど失敗することが多いのは当然のことです。また、僕は人よりも間違えることが多く、失敗する人間だと思っています。そんな僕が記憶に残る失敗談を書いていきます。
ある時に先輩エンジニアから30分で電話番号のバリデーションを実装できるかと聞かれ、「できます!」と聞かれた僕はグーグル先生に
見つけたサンプルコードがこちら
このコードでレビューに出したら、レビュー開始3秒でコピペコードだろうと怒られてしまいましたww
たしかに当時改めて、コードを読んでみると
現在は書いたコードの責任は自分であること、一字一句を口に出して説明できることを常に心がけています。
弊社ではソースコードのバージョン管理にGitを利用しています。
細かいタスクで修正内容が簡単だったので、それぞれのタスクごとにブランチを作成せず一つのブランチで作業してしまいました。
いいパターン
今考えるとあたり前のことですが、ブランチを分割する目的を理解していればこのようなことは起きなかったと思いますが、その目的を知らずに使っていたことがよくなかったですね。
弊社はあなたのマイスターというWebサービスを提供しています。パソコン、スマホとそれぞれの画面が存在します。
Chromeに限らず、ブラウザにはリクエスト、レスポンスの情報やスマホ画面のエミュレータなどの機能を備えているデバックツールがあります。コードを書きながらブラウザのデバックツールで動作確認をしているんですが、実際の実機ではうまく動作しないことは多々ありますよね?それだけではなく、ブラウザによっても動作しないこともあります。実装していて、
参考:https://w3g.jp/blog/jquery-data-attr-cache
参考:https://qiita.com/unbabel/items/12487e85525ba1ec1618
誰しもが忘れられない失敗談をいくつか持っていると思います。そして、ミスや失敗することはやっぱり恥ずかしいです。
失敗することを恐れてできないことから避けることがいつの間にか癖になってしまいます。自分も
自分の中で成長することは
ユアマイスターアドベントカレンダー2018 の24日目の記事です。
はじめに
街では光輝くイルミネーションが街を照らし、家族や恋人、友達と一緒にケーキを食べながらイエス・キリストの誕生を祝うクリスマスの前日になりました。去年は友人と一緒に美味しい肉を食べた記憶があります(笑)。そんなクリスマスイブに今年やってしまった失敗談を記事にしたいとおもいました。今思えば、笑えてくる失敗もあるので、ぜひ読んで頂ければ嬉しいです。
本題
人は失敗する生き物です。僕は一度も失敗したことないと言う人を聞いたことありません。失敗は成功の母ということわざがあるように人は失敗を重ねながら経験を積み、成長していきます。そして、経験が浅ければ浅いほど失敗することが多いのは当然のことです。また、僕は人よりも間違えることが多く、失敗する人間だと思っています。そんな僕が記憶に残る失敗談を書いていきます。
プログラミング初心者の時にやってしまった失敗 3選
ネットのサンプルコードを丸コピーで実装してしまった
ある時に先輩エンジニアから30分で電話番号のバリデーションを実装できるかと聞かれ、「できます!」と聞かれた僕はグーグル先生に電話番号
バリデーション
というキーワードで検索しました。見つけたサンプルコードがこちら
電話番号バリデーション.php
function validateTel($tel) { return preg_match('/\A\d{2,4}+-\d{2,4}+-\d{4}\z/', $tel); }
たしかに当時改めて、コードを読んでみると
preg_match
も正規表現
も全然わかりませんでした。動いたからできた気でいたんです。(非常に危ない考え)現在は書いたコードの責任は自分であること、一字一句を口に出して説明できることを常に心がけています。
複数のタスクチケット進めるときにチケットごとにブランチを作らず、一つのブランチで進めてしまった
弊社ではソースコードのバージョン管理にGitを利用しています。細かいタスクで修正内容が簡単だったので、それぞれのタスクごとにブランチを作成せず一つのブランチで作業してしまいました。
- どの差分がどのタスクなのかがわからない
- 分割してマージできない
いいパターン
今考えるとあたり前のことですが、ブランチを分割する目的を理解していればこのようなことは起きなかったと思いますが、その目的を知らずに使っていたことがよくなかったですね。
クロームのデベロッパーツールに頼りすぎた自分
弊社はあなたのマイスターというWebサービスを提供しています。パソコン、スマホとそれぞれの画面が存在します。Chromeに限らず、ブラウザにはリクエスト、レスポンスの情報やスマホ画面のエミュレータなどの機能を備えているデバックツールがあります。コードを書きながらブラウザのデバックツールで動作確認をしているんですが、実際の実機ではうまく動作しないことは多々ありますよね?それだけではなく、ブラウザによっても動作しないこともあります。実装していて、
JavaScript
に苦労したことが忘れられないのでいくつか紹介します。(失敗というよりハマったことですね。)
jQueryでdata属性の値を変更して取得したときに値が変更されなかった
jQuery.data()
で値を書き換えても書き換える前の値が取れる現象がありました。原因として、jQueryがdata属性をキャッシュするという仕組みだったからです。そのためネイティブJSで変更して、この問題は無事に解決できました。参考:https://w3g.jp/blog/jquery-data-attr-cache
Date型か戻り値がブラウザによってバラバラであること
new Date
の戻り値がブラウザによって異なることがありました。dateのフォーマットがブラウザに依存しており、それぞれのブラウザで差がでるみたいです。参考:https://qiita.com/unbabel/items/12487e85525ba1ec1618
まとめ
誰しもが忘れられない失敗談をいくつか持っていると思います。そして、ミスや失敗することはやっぱり恥ずかしいです。失敗することを恐れてできないことから避けることがいつの間にか癖になってしまいます。自分も
できないこと
=やりたくないこと
と自分の中で勝手に定義して失敗することから避けてきたので、成長ができず同じような日々を過ごしていました。自分の中で成長することは
楽しい
であると思うので、成長し続けることで人生が楽しくなると思います。そして、成長はできないことをできるようになることでできないことに対してチャレンジし続けることが必須でチャレンジには失敗が伴うので、失敗を恐れずにチャレンジし続けたいと思います。
コメント
コメントを投稿