SAGA SITE

夢をプロトタイピング

ActiveRecordのライブラリー

ActiveRecordのライブラリーで、何かいいのないかなー???

 

 

事の発端

あるデータの登録作業を手動でやっていたら、まとめサイトを作りたい衝動に駆られた。

サクッとWebサイトを作るなら、PHPが簡単。

今までならCodeIgniterでパパっと作っていた。

しかし、CodeIgniterのORM、ActiveRecordの機能は普通なので、CRUDのコード量はそれほど減るわけじゃないと感じている。

 

CRUDのラッパー

Webアプリは、ぶっちゃけRDBのラッパーだと思っている。

RDBを操作するために、ひたすらCRUDのコードを書くことが続くけど、毎回同じようなコードを手で書くのは、単調でつまらないと感じる。

その退屈さから「面倒」という感情が生じて、なるべくコードを書かないで楽をしたい、手抜きで作りたいという欲求が勝り、生SQLを書きたくなくなる。

 

SQLを書く楽しみ

SQLが悪いわけじゃない。複雑なSQLを書くことは、パズルを解くみたいで面白いときもあるけど、いつもいつも遊び心を持ってコードを書けるわけじゃない。

納期に迫られて、焦っているときにSQLのパズルで楽しもう!などという心の余裕がないだけ。

 

CRUDのコードを自動生成するスキャフォールディングも、大雑把な操作には使えるけど、細かい所に手が届かないのがもどかしい。

 

面倒な技術選定

言語、Webフレームワーク、ORMライブラリーの選定は、今ならどれが良いだろうか?

 

  • RubyRuby on Rails:元祖ActiveRecordで枯れた技術になりつつあるけど、覚える事がわりと多くて、今となってはそれすらも面倒な印象(どんだけ怠惰なの>俺😅)
  • PHP → Laravel:「Eloquent ORM」コマンドでスキャフォールディング。 面倒!
  • PythonDjango:管理画面を作りやすい。これでいいかな?

 

うーん、どれも程度の差であり、大差はない印象。

自分の性格を改善して、面倒だと思うことでも真面目にコツコツ取り組む姿勢を培った方が良いのかも…😂😂😂

 

あ~、楽してCRUDを書きたいな~~~!!!

面倒くさいのは嫌だ!!!😇😇😇

 

技術選定すらも面倒に感じてしまうと、結局今までと同じ方法で作らないといけなくなる。

殻を破るために、新しいものをちょいちょい試していくしかないかー。

どうせなら、筋の悪いもの(ハズレ)を避けて、なるべく当たりを一発でつかみたい!

…どこまで行っても面倒くさがりな俺>自分のヤバさを実感して切ない。

 

検索して眺めた記事など(備忘録)

 

qiita.com

 

qiita.com

 

qiita.com

 

何だろう。

ブックマークに、記事の作成年月日も取得して、付記してくれる機能があるといいのに、と思った。

→自分で作りたくなる衝動に駆られるけど、面倒の壁でいつも撃沈してるw

 

今どきの本

Amazonで今どきの本を漁ってみるなど。

 

PHP → Laravel

まずは公式ドキュメント。これ読んで理解できるなら本の出番はない!

 

laravel.jp

 

紙の本

(2021/3/15 発行)

 

(2021/6/1 発行)

 

Kindleの本

(2019/12/27 発行)

 

(2019/9/3 発行)

 

(2021/2/16 発行)

 

(2021/4/19 発行)

 

…眺めていて、自分で本を書いた方がいいんじゃないか?と思ったりした。

 

PythonDjango

まずはドキュメント。これを読んで理解できないなら、副読本を読めば良い。

 

docs.djangoproject.com

 

紙の本

(2020/2/22 発行)

 

(2021/3/27 発行)

 

(2020/7/30 発行)

 

(2021/7/19 発行)

 

(2021/7/30 発行)

 

(2019/12/13 発行)

 

さすがにPythonはAIブームなどのおかげで需要が高まり、解説本もたくさん出ていた。

それだけ買う人が多いということなんだろう。

出版社も売れる本を作るはずだから、売れない本は続刊が出ない。

 

考察

いろいろ分かりやすそうな本が出て来たけど、いまいち学習意欲が湧かない。

 

手続型で手軽に作るならLL言語で、PHPRubyPython

手続型でもガッツリ作るならコンパイル言語→WebならJavaScalaが鉄板かな?

 

関数型で書いていきたい。

関数型でWebアプリのバックエンドを書くなら、Scalaでも書けるけど他の選択肢は何だろう?

インタプリタ―言語:Scheme

コンパイル言語:Haskell

 

ちょっと極端に振れるかもしれないけど、Haskellで書いてみるかー。

ActiveRecord、どこ行った!?🤣🤣🤣)