2023年2月01日: カプセルトイ
【エクスショップ ノガミ】
お久しぶりです。
前回ブログより1年経過しました。
この1年で近くにも素敵な場所が発見できました。
神戸のイベントは中止になってるものが多いですが、
夏に神戸市立相楽園 ひかりのさんぽ路へ行ってきました。
約1,000本のろうそくが使用されてます。
神戸に住んで、長いんですが、
相楽園へ行ったのも初めてです。
さんぽ路のあいまに、出店されてた創作菓子いおり さんの
わらびもちや、冷やしぜんざいを頂きました。
おいしかったです。
今年の夏も行きたい、食べたいです。
2023年1月31日: 徒然ショートショート
【デジタルアライアンス ミヤケ】
ひいきのハンバーグ専門店が去年の夏に閉店になっていたことを
先週末にして知り、ただいま地元でハンバーグ難民やってます。
ちなみに最近の大好物は「Twitter Files」です。
2023年1月30日: オブジェクト指向プログラミングについて
【デジタルアライアンス ハタケヤマ】
ヨシナガさん、バトンありがとうございます。
頼ってもらっても大丈夫なよう精進します・・・^^;)
最近オブジェクト指向プログラミング(以降OOP)について、学びなおしをしたのでそれで感じた所感を紹介したいと思います。
オブジェクト指向は昨今ではフレームワークやライブラリ等々で採用されているケースが多く、
ソフトウェア開発する際は避けて通れないものになっているかと思います。
とあるプロジェクトでなんちゃってDDDを実践していますが、より価値の高いしなやかな設計を目指すには
まずはOOPの基礎を抑えるひつようがあると思い、学びなおしを致しました。
何を元に勉強をしたか、勉強を通して何を感じたかを述べたいと思います。
1.デザインパターン
まずはデザインパターンです。
上記書籍は良書として改版しながら販売継続されており、2020年に第3版が出版されておりました。
最新の第3版を購入して勉強しました。
説明がとても分かりやすく、具体的なコードパターンの実装が示されていて、流石は評判の良い良書だと思いました。
委譲、ポリモーフィズム、開放閉鎖の原則、リスコフの置換原則、DI、自己文書化、低結合な実装や、
抽象に依存する事の重要さ等々、OOPの設計・実装の重要なエッセンスを学ぶことが出来ました。
一方で、パターン自体はなかなか実戦で使えそうなものは少なそうな印象を持ちました。
言語やフレームワークレベルで、同じことをもっと簡単に出来るように備えられているものがあったりもします。
この辺りは、Gofのデザインパターンがが出た当初はデザインパターンの活用どころがあったのかもしれないのですが、
その後時間が経過して便利なライブラリやフレームワークが進化した結果なのかもしれません。
2.WEB+DB PRESS Vol.132
WEB+DB PRESS Vol.132に、衝撃的なコラムがあったので紹介です。
表紙タイトルに書いていますが、「オブジェクト指向神話からの脱却」です。
このコラムには、オブジェクト指向言語が出てきた歴史から、その機能面の解説。そして、
ざっくりとした概要としては良い設計・実装をするにはOOPが必須という誤解・幻想を捨てましょうという
内容となっています。オブジェクト指向言語の機能であるポリモーフィズム、継承による差分プログラミング
や、部分型等々といった機能ベースで深い考察が書かれていました。
また、OOPでなくても保守性の高い実装手段はあるし、よりシンプルに実装出来たりもするという
実装例もありました。
また、継承は1回限りしか使えないカードなのと、基底クラスと子クラスの結合度が密接になって
しまう事から、昨今のOOPでは継承を使わない方が良いという意見があり、その事についても
触れられていました。昨今流行りのGoやRustといった言語には、継承がありません。これも、
こうした継承の問題点をくみ取った流れなのかもしれません。
OOPが出来ればいい設計・実装が出来るという神話や思い込みは捨てて、OOPの機能を
有効活用したり、OOPの機能でなくてもより良い設計・実装の追及は出来るという気づきを
頂きました。ただ、私としてはOOPの設計・実装スタイルは好みなのと、保守性・変更容易性の高い
設計・プログラミングの重要な鍵になるという考えは持っております。有効活用していけるよう、
よりスキルを磨いていけたらと思っています。また、オブジェクト指向は要らないという事は無いと思います。
先述の通り、多くのフレームワークやライブラリでオブジェクト指向言語が取り入れられており避けては
通れません。そして、オブジェクト指向は、プログラミングを高度に抽象化する機能を持ち合わせた技術
である事は間違いありません。そのエッセンスを学ぶことは、プログラミングスキルの向上に必要だと
考えています。OOPに触れることなくプログラミングするより、OOPを学んでその上で必要なものを適切に
活用しながらプログラミングするのが理想かと思います。
3.リファクタリング
マーチン・ファウラーのリファクタリングの本が良書という話を聞きつけて、読んでみました。
具体的に、そしてとても細かくリファクタリングの手順やテクニックが書かれていました。
また、第1版では元々Javaで書かれていたのを、第2版では最近流行のJavaScriptベースで書き直し
されている点も好感を持てました。細かすぎてこのテクニックを現場で使えるかが自信がありませんが、
一つ印象に残っているのは継承についてです。継承で問題点が出たら、委譲にリファクタリングすればいい
というテクニックです。継承はやめたほうがいいという昨今の論評がありますが、この本はそのことを否定
していました。継承は便利なので使えばいい。ただ、問題が出たら委譲にリファクタリングすればいいだけと。
なので、今後も躊躇なく継承を使っていこうと思いました。リファクタリングのリスクはあるんですけどね・・・
ただ、DDDではリファクタリングは通常の開発活動の一部とせよとうたわれています。リスクが高く
リファクタリングしにくいという事情がある場合、リファクタリング出来る開発環境・ツールを整えたら
問題解決できます。スタンダードな解決方法としては、UnitTestの自動テスト実装でしょうか。
以上がOOPについて勉強した事の所感となります。
明日は、同じ部屋の大先輩のMさんです。
2023年1月27日: 鹿児島の観光地その1
【デジタルアライアンス ヨシナガ】
カンガワさんバトンをありがとうございます。
デジタルアライアンスのあの方ことヨシナガです。
山椒ラーメンは初めて知りました。家から近そうなので、今度行ってみたいと思います。
さて、11月に神戸へ越してきて早2か月が経ちました。
今回は、初めてのブログと言うことで、鹿児島の名所について二つ程ご紹介したいと思います。
【1】霧島神宮
一つ目は霧島神宮です。
令和4年に正式に国宝に指定された由緒正しい神社になります。
鹿児島と言えば、桜島と思い浮かべる方が多いと思いますが、近年では霧島神宮も認知されるようになっています。
コロナウィルスが流行し、外国人の観光客の方は減ってしまいましたが、流行前はかなりの数の外国人の方が訪れておりました。
山の上にある為、かなりのパワーがあるとかないとか。
【2】大浪の池 (おおなみのいけ)
二つ目は大浪の池です。
登山の初心者の方でも登ることができる場所になっております。
ただ、非常に滑りやすい場所もある為、登山用のくつやタオルなどは持参したほうが、いいと思います。
スニーカーなどのカジュアルな服装で登山も行うことは可能です。
※写真は韓国岳(からくにだけ)から撮影したものになります。
今回は二つの名所をざっくりと紹介させていただきましたが、季節によって見え方が変わる為、四季を楽しむことができます。
是非鹿児島を訪れた際は行ってみてください。
手元に写真があまりなかったので、次回紹介するときは写真をたくさん用意しておきます。(笑)
次は、同じ部屋でバリバリ働いている頼れるあの方です。