Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
156
Help us understand the problem. What is going on with this article?
@nagareboshi

個人学習で書くコードはpublic公開した方がよい理由

はじめに

コロナ禍の影響で、エンジニア転職が増えてるという肌感です。
私もまったくの異業種からの転職でこの業界にきました。
昔の自分に会えたらこう言ってあげたいという思いをポエムとしてまとめましたので一つの記事としたいと思います。
この記事が一人でも多くの未経験エンジニアの役に立てば幸いです。

[2021.06.08追記]
反響がありとても驚いています。
同時に内容が一部不十分であったこと反省しています。
セキュリティ面についての内容を追記いたしました。

コードはGitで管理しよう

個人開発であってもコードはgithubなどのGitのホスティングサービスで管理するようにしましょう。
業務ではgitを使うのが一般的ですし、バージョン管理ができるので「正確に動作していた時に戻す」なども簡単にできます。

個人開発であってもdevelop一本化ではなく、git-flowに則ってバージョン管理したり、リーダブルコミットを意識してコミットログを書いておくと、とても勉強になります。

コードはpublic公開しよう

過去の自分に強くこれを伝えたいと思っています。
Githubなどのホスティングサービスでは一般的に非公開(privateリポジトリ)と全世界への公開(publicリポジトリ)の二種類が選択可能ですが、個人開発であってもpublicリポジトリを強くオススメします!!
そして可能であれば、QiitaやTwitterなどにGithubのURLを載せるなどして常に人に見られるかもしれないという状況にしておくことを推奨します。

人に見られるかもしれないという意識があると、自ずとコードをキレイに書くことを意識しやすくなりコーディングスキルが高まりますし、何よりもpublicリポジトリにすることで以下様々なメリットが受けられるようになります。

publicリポジトリにすることで受けられる恩恵

  • GitHub Actionsが無料で制限なく使えます
    • 様々なことを自動化してくれるCI/CDツールが使えます
  • styleciが無料で制限なく使えます
    • Laravel公式などで使われているツールです。コーディング規約から外れている場合は自動で修正提案してくれます
  • codeclimateが無料で使えます
    • 書いたコードの品質を自動でレビューし、指摘箇所があればなぜ悪いのかを理由付きで教えてくれます
  • sonarcloudが無料で使えます
    • 書いたコードの品質を自動でレビューし、指摘箇所があればなぜ悪いのかを理由付きで教えてくれます
  • Coveralls
    • プログラムのテストを行った時にどれくらいの範囲がテストされているかを調べて表示してくれるサービスです。

セキュリティについて

学習した内容や方法によっては外部サービスのトークンや鍵を使用する場合があるかと思います。
これらの情報は外部公開すべきではない秘密情報であるため、取り扱いには十分注意し、コードに直接埋め込まないようにしましょう。

これらの内容を扱う場合は、環境設定の情報だけをまとめた環境設定ファイルを用意し(Laravelであればenvファイル)、そのファイルはgitignoreにしておくことで誤った情報流出を防ぐことができます。

そのほか、「git-secrets」というツールを導入することでも万が一を防ぐことが可能です。
秘密性の高いものをプロジェクトファイル内におく必要性がある場合にはこういったツールの導入を検討しましょう。

IDEを使おう

プログラムはエディタでも書くことはできますが、機能の多さが桁違いなのでIDEを使うようにしましょう。
個人的に推しているのは、jetbrains社の各種IDEです。
高機能なプラグインが豊富ですし、コード補完機能がとても優れています。
弘法筆を選ばずとは言いますが、駆け出しエンジニアだからこそお金を出してでも良い筆(IDE)を使って足りない技術力を補いましょう!
学生さんであれば無料で使うことも可能です。

コミュニティに参加しよう

プログラム学習は孤独なこと多いかと思います。
よく分からない現象に陥って1日で作業が何も進まなかったということもあるかもしれません。
そんな悩み相談やエラー解消などには各言語やフレームワークごとに存在するコミュニティに参加するのがオススメです。
人に教えたり、アウトプットしたりすることが好きな人が多いので、気持ちを伝えれば快く返答してくれると思います。
ただし、お礼や感謝の気持ちはいつも忘れずに!!

最後に

この記事が一人でも多くの人の役に立てば幸いです。
そして、強いエンジニアになったあとは、各種サービスやIDEの社内普及や業務利用などを通し、「お金」という形で各種サービスに還元し、業界の発展に繋がっていくことを願います。

156
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
156
Help us understand the problem. What is going on with this article?