1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

技術選定の審美眼

Last updated at Posted at 2019-06-16

ORACLE CODE TOKYO B-3-1
を拝聴したメモです。
技術の移り変わりがすさまじいこの時期に私たちはどの技術を選べばいいのかというひとつの指標になればと思います。

長生きしている技術

  • Unix
  • REST/Web
  • RDBMS

共通点

制約がもたらす共有

  • インターフェースが狭く限定的
  • 振る舞いの種類が少ない
  • 実装に依存しない
  • 接続と再利用が時間をまたいでいる

決定的な違いをもたらした技術

  • Ruby on Rails
  • Cloud
  • Docker
  • React

Ruby on Rails/Cloud/Docker

量的(時間的)な変化が大きい
「安い」「うまい」の実現

React

サーバーサイドの処理を記述する感覚でフロントエンドのコードが書ける
データ更新の方向が一方通行(混乱しない)(?)
Reactによるて手数は増えたが、心配は減った

結局なにを使えばいいの

  • Game Changer(大きな変化をもたらすもの)は必ずしも採用する必要はないが、それらが変えた後あとの世界は知っておく必要がある。
  • 開発にかかわる労力(コスト、心的コスト)を矢印で表したとき、その長さや構造を圧倒的に変えるもの。 もしくは矢印は折る(ジャンルそのものを不要にする)

ここまでの変化がないものをスルーするかどうかは「お好みで」

「その技術が何のために出てきて、何をどのくらい変化させるのか見切れればスルーできる」

WorthisBetter

簡潔性、正当性、一貫性、完全性の観点でソフトウェアの設計を行う。
設計も実装もシンプルがベストだがそれができないときになにを重要視するかというもの

  • MIT/Stanfordアプローチ
    コードがいくら複雑になっても正しいことをせよ
  • New Jerseyアプローチ
    ユーザの負担が増えたとしてもコードを単純に保て

従来のソフトウェア設計観点からいくとMIT/Stanfordが「より良い(Better)」でNew Jerseyが「悪い(Worth)」

しかし、実際は単純なコード単純な実装で50%の正しさをもったものをつくったほうが伝染性がよく、結果的に技術的改善が行われ90%まで実現するだろう

っていう考え
(汚く早く書いたほうがいいという話ではないです)

まとめ

  • 技術の変化は螺旋状。技術の歴史は同じような周期で回っているが、実は螺旋構造で同じところには返ってこない。
  • 変わらない技術には特徴がある。その背景を理解する。
  • とりあえず新しい技術が生まれたら触ってみようぜ。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?