[駆け出しエンジニア]実務半年で学んだことを軽くアウトプットしてみる
はじめに
初めまして。
去年の5月から未経験でwebエンジニアとしての第一歩をスタートし、7月から実際の現場で開発業務に携わっています。
本記事は、自分と同じように未経験からエンジニアを志す人や新卒エンジニアなどに向けて、私が実務で学んだ知見の共有を目的としています。
学び
1. 保守性・可読性を意識してコーディングを行う
具体的には、
- 変数や関数、クラス、ファイル名など、命名については誰もが分かるような名前を付ける。
- コメントを残すことにより、他の開発者や自分自身が後で見返した際に理解しやすくすることができる。
- 各レイヤーに責務を理解し、それぞれのレイヤーが想定通りの役割を果たせるようにコーディングを行う。例えば、プレゼンテーション層、アプリケーション層、ドメイン層、インフラ層など
2. 今後の運用を考慮して実装を行う
上記の保守性にも重なる部分がありますが、
実装する機能の今後の運用を考慮して実装することで、拡張性を高めることができます。
例えば、クイズ企画の実装を行う場合、今後同じような企画を行う予定がある場合には、定期的に開催されることを考慮し、拡張性を持たせた実装を行うことが可能になります。
クライアント視点を持って開発する癖づけを行えば、「この企画は今後も開催しそうだな。」と事前に対応できるようになってきます。
3. 開発におけるアンチパターンを把握する
web開発において、クエリ系(n+1問題、Eager Loading、Lazy Loading)、テーブル設計(正規化)、セキュリティ(SQLインジェクション、XSS)などのアンチパターンを理解しておくことは、システム障害のリスクを軽減するために大切です。
4. 実装前にフローを可視化する
コーディングに入る前に、要件の整理を行い、どのようなフローで機能を実現していくかをあらかじめ可視化することにより、実装をスムーズに進めることができます。また、可視化することで事前に考慮漏れなどに気づくことができます。
5. 工数計算を常に行う
開発にかかる工数を予想することで、全体像の把握やスケジュール管理の精度が上がります。工数を見積もることで、開発期間やリソースの調整などを適切に行うことができます。
6. クライアントとのやりとりはなるべく共通言語で
クライアントとのやりとりが発生した際は、エンジニア向けの専門用語(ローカル環境、リダイレクト、キャッシュなど)を使わず、共通言語を使うようにしましょう。専門用語を使ってしまうと、相手が理解できず、コミュニケーションコストが増えてしまいます。
エンジニアの人にとっては当たり前のことでも、他の人にとっては理解しづらいことが多いため、注意が必要です。
最後に
実務で学んだことをすべてここに書き出すことはできませんでしたが、簡単にまとめてお届けしました。
皆様のお役に立てれば幸いです!!
最後までご覧いただき、ありがとうございました。
Discussion