思考停止するな

ネットワークとかアプリケーションとかWebとか

コードレビューの際に気をつけることを考えてみた

今回はコードを書いてレビューしてもらう立場ではなくコードレビューを行う立場になった時に気をつけることを考えてみました。

私はまだまだプログラミングの経験も浅く、コードレビューができる様なレベルではないのですが、
レビューする立場に立って考えることで、違う見方ができるかもしれないと思いコードレビューの際に気をつけることを考えてみました。

チェックすべきこと

・コーディング規約を守れているか
・意味の無いロジックが含まれていないか
・コメントが適切か
・命名が適切か
・メソッドが1つの機能以上の役割をしていないか
マジックナンバーが仕様されていないか
・適切な例外処理が入っているか
・バグの温床になりそうなところはないか
・スコープは適切か
・行数が長すぎないこと
・似たような処理が複数ないか

指摘する時に気をつけること

・複数人でのコードレビューを行う場合必ず指摘する
・指摘する内容ではいけない理由と代替案の提案をする
・否定ばかりをしない(褒める)
・相手が納得できる説明をできるように頑張る
・レビュー後にモチベーションを上げられるように工夫する

以上のようになりました。
思った以上に思いつかなかったのはやはり私の実力不足でしょうか。
コードレビューの内容って自分にもそのまま返ってくるので、お互いに交互にやったりすると成長できるかもしれないですね。
また、コードレビューを通して知ってることを教えあったり、テクニックや注意点ややり方を盗んだり、どう書けばより良いものになるのか上司も部下も関係なしに議論できたらいいものにできるように思います。

OracleのCREATE TABLE文のカラム定義のサイズについて

最近Oracleを扱っていて長さの指定で困ることがあったので調べてみた。

OracleのCREATE TABLE文のカラム定義のサイズはバイトにするか文字数にするかを指定できるらしい。
デフォルトではバイト数(サイズの単位を省略するとBYTEとなる)となるらしい。

文字数でサイズ指定したい場合は以下のようにする。

列名 VARCHAR2(5 CHAR)

文字列の長さを求める関数は2つあるらしい。
LENGTH 関数
文字列の文字数を戻す。
文字列がCHAR 型(⇔VARCHAR2型)の場合には自動的に補完される後続のスペースも長さとしてカウントされる。

LENGTHB 関数
文字列のバイト数を戻す。
全角文字の場合には使用しているキャラクタセットによりバイト数は異なる。
UTF-8の場合は全角文字1文字が3バイトとなる。

主なデータ型の説明は以下にまとめてみた。

CHAR 固定長の文字列を格納。CHAR列の文字列の長さを1~2000までの値で指定する必要があります(単位はバイト数または文字数)。デフォルトは1バイト。固定長にあわせて空白が補完される。
VARCHAR2およびVARCHAR VARCHAR2データ型には、可変長の文字列が格納される。文字列の最大長を1~4000までの値で指定します(単位はバイト数または文字数)。空白は補完されない。VARCHARデータ型は、VARCHAR2データ型と同義。そのため、可変長の文字列の格納には常にVARCHAR2データ型を使用するようにする。4000CHARのカラム定義はできるが、4000文字に達していなくても4000バイトに達した時点でエラーとなる。
NCHARおよびNVARCHAR2 Unicode文字データを格納するUnicodeデータ型。キャラクタセットは、AL16UTF16またはUTF8のいずれか。NCHAR列の最大長は2000バイト。NVARCHAR2列の最大長は4000バイト。
NUMBER 固定小数点数および浮動小数点数が格納される。最大38桁の精度。
DATE DATEデータ型には、年(世紀を含む)、月、日、時、分および秒(真夜中から数える)が格納。

SQLServerについても同様のことについて調べたのは以下。
http://shimonss.hatenablog.com/entry/2017/05/28/102205shimonss.hatenablog.com

エンジニアが独身のうちにやるべきことを考えてみた

私は院卒でシステムエンジニア(SE)として働いているのですが、現在の年齢は25歳です。
院卒なので、大卒と比べると2歳年上です。
まだ働き初めてそんなに経っていないのですが、平均結婚年齢とされる29歳まであと4年しかないことに気がつきました。
私は今お付き合いしている女性と結婚することを考えています。
周りもチラホラ結婚している人が増えてきて、結婚に対する意識を無視できなくなってきました。

結婚すると、家族と過ごす時間が増えて自分の時間が少なくなりそうだなあっと思い始めました。
なので、今日はエンジニアが未婚(独身)のうちにやるべきことを考えてみました。

1.資格取得

ただでさえシステムエンジニアは時間がなくて勉強する時間が取れないっていう方が多いと思います。
そんな中、家族ができるとさらに勉強する時間が取れなくなると思います。
システムエンジニアといえば、情報処理の資格やOracleLPICCiscoなど有名な取っておきたい資格がたくさんあります。
これらの資格をとるための勉強時間を確保しやすいのはやはり独身のうちだと思います。

2.勉強会に参加

IT関連の勉強会は頻繁に行われています。
平日の夜や土日によく行われていますが、やはり結婚してからだと興味のある勉強会に片っ端から参加というのは少し難しくなってしまったり、
家族行事があって行けないということもあるかもしれません。
なので、興味がある勉強会などには積極的に参加しておくのがいいと思います。

3.貯金

3つ目はエンジニアだからというわけではないですが、結婚するにはやはりお金が必要です。
結婚後も必要になるでしょう。
独身のうちにできるだけお金は貯めておく必要があります。

4.技術の勉強の時間を多く取る

システムエンジニアはずっと勉強していく必要があるとよく言われます。
結婚してからも勉強の時間はとると思いますが、限られてくるような気がします。
また、勉強するクセをつけておかないと、結婚してからは余計に勉強しないような気がします。
なので、今のうちから新しい技術に対して敏感になって、吸収するクセはつけておきたいと思います。

5.趣味に没頭する

エンジニアの人は趣味を持っている方は多いような印象があります。
結婚してからも趣味に没頭することはできると思いますが、
独身のうちこそ趣味に好きなだけ打ち込むことをやっておきたいなあと最近思い始めました。
(私は趣味がないので探し中なのですが、、、)

6.長期的な出張

これは自分でどうにかするものではないとは思います(会社都合だと思います)が、独身のうちに長期的な出張に行き、
経験を積んでおくのがいいような気がします。
遠く離れたところ行くのもそうそうできることではないと思うので、今のうちにいろいろ行っておく
のがいいと思います。


今日はエンジニアが独身のうちにやるべきことを考えてみました。
なかなかこのようなことについて考える機会がなかったので、これから1日1日をより大切にしていきたいと思いました。