〜日々の苦悩を乗り越え、確かな選択をするために〜iOSDCはじめにこんにちは。今年フェンリルにiOSエンジニアとして入社した西村滉祐と申します。2019に参加し、そこで色々なトークを見ました。その中から得る事ができた知識や知見などを共有したいと思います。〜日々の苦悩を乗り越え、確かな選択をするために〜」から、クリーンコードとジェネリクスについて話します。Martinが提唱したものだそうです。Bobと呼ぶ事にします。Bob曰く、クリーンコードとは読みやすいコードを指しています。人によってその意味するところは違い、クリーンコードは長年の経験と試行錯誤の積み重ねからの学びであると主張しています。etcジェネリックについてクリーンコードを書くためのアプローチとしてジェネリックが挙げられるでしょう。ジェネリックとは、「具体的なデータ型に直接依存せず、汎用的に利用可能な状態」であると定義しています。T)というようになり、Tはひとつめの引数aに渡した型で決定されるプレイスホルダー的な役割を持ちます(bの型はaに渡されたものと同じになります)。このswapTwoValuesという関数を、ジェネリクスを使わないで色々な型について実装しようとするなら、それぞれの型で全く同じコードを書く事になりますが、ジェネリクスを使う事でそれを解消できる訳です。ジェネリックコードとクリーンコードジェネリックコードの特徴は汎用的で再利用可能なコードという事です。上述したswapTwoValuesメソッドのように、似た構造を持つコードをうまく一般化してジェネリックコードにする事で、コードの量が減り、冗長な繰り返しが消えます。このようにジェネリックコードは可読性の観点からコードをクリーンにします。プロトコルさて、Swiftにおいてジェネリックプログラミングを実現する際に重要なもののひとつがプロトコルです。Appleは2015年のWWDCでプロトコル指向プログラミングのトークを行いました。プロトコル指向プログラミングとはひとつのプログラミングパラダイムであり、プロトコルを用いてプログラムの設計を考えます。protocolとあります。何か一般化する必要がある時にプロトコルから始めよという事です。protocolとあります。クリーンコードを書こうとして一般化する前に、まず具体的な型で始め、その後で一般化した方が良いと判断したらプロトコルで一般化すべき具体的な型を統一するとよいでしょう。重複の消去や汎用化の必要がない限り、無理してジェネリックにしない方がいいです。終わりに:クリーンコードを書き続けるにはクリーンコードとして挙げられる特徴として、わかりやすい安全である変更に強いというものがあり、今回はそのアプローチのひとつとしてジェネリックコードを紹介しました。似た構造を持つコードをうまく一般化した上でのジェネリックコードはコードの可読性に貢献するでしょう。最後にボーイスカウトの規則というものを紹介します。これは簡単にいうと「元の状態よりも良くしていきなさい」というものです。it(引用元:https://medium.com/@biratkirat/step-8-the-boy-scout-rule-robert-c-martin-uncle-bob-9ac839778385)クリーンコードを書き続けるには、それぞれがコードの改善を継続的に行っていくというプロ意識が必要です。その過程で経験や試行錯誤を積み重ねていく事で、一貫した価値体系が構築されていくのかもしれません。Modules(vgo)環境で利用する3つの方...こんにちは、アプリ部の門多です。アプリエンジニアの大橋です。アプリエンジニアの山口です。»このブログについてフェンリルのエンジニアが開発技術に関する様々なトピックをお送りします。(7)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。