1733361987
2024-12-04 14:15:00
更新 2024-12-02 : Hacker News の投稿について活発な議論が行われました。こちらも興味深いかもしれません: スレッドへのリンク。
「予約を管理するための非常にシンプルな CRUD アプリが必要です。」 彼らは 言った。 「あまり時間をかけすぎないでください。」 彼らは 追加した。
「うーん、私は Ruby on Rails が得意です。これはぴったりだと思います。しかし、私は以前にもこれらのローコード ツールを使用したことがあります。これらは、このような問題には完璧なソリューションであるはずです。ここで何を使えばいいのか…」まさにその瞬間、 この記事の期間中のみ私は、両方の選択によって引き起こされるタイムラインに沿って、自分の考えを未来に投影する能力を獲得します。誰かが「リサン・アル・ガイブ」とささやきます。 しかし私はそれを無視します。
両方の弧が私の前で並行して展開します…
始まり: プロトタイプ
私はと話します 彼ら 要件について。彼らが約束したように、要件は実にシンプルです。これにはそれほど時間はかかりません。
タイムライン: ローコード
あちこちをクリックしてみると、このツールには必要なものがすべて揃っており、必要なものとほぼ同じテンプレートさえあります。テンプレートから開始し、クリックしてさらにカスタマイズします。数時間以内に彼らが必要とするものを手に入れることができます。もう一度クリックするとライブになります。よかった、昼前に終わった。
タイムライン: Ruby On Rails
まずは実行してみます 足場発電機 必要なモデルをすべて取得するために数回繰り返します。次に、それを使用できるようにコードを変更します ターボ。 生成されたフォームを組み合わせて、必要な基本機能を取得します。また、生成されたテストを更新し、それらが緑色であることを確認します。私が実行するのは、 認証ジェネレーター そして私のサーバーにデプロイします カマル 。一日が終わりましたが、サイトは稼働しており生きています。
ライジングアクション:追加機能
今後数日間、 彼らは いくつかの追加機能を要求します。予想どおり、彼らが私の簡単なプロトタイプを使い始めたとき、最初は必要な追加機能をいくつか忘れていたことに気づきました。ありがたいことに、それはすべて予測可能な CRUD 内容です。
タイムライン: ローコード
ローコード プラットフォームの作成者はこれらの機能を予期しており、すべてがツールに含まれています。ほとんどの機能は、構成を変更するか、数回クリックするだけで組み込みコンポーネントを追加できます。
1 つの機能は単純そうに見えますが、それを機能させる方法がわかりません。似たようなものは入手できますが、必要なものはまったくありません。ドキュメントも検索も AI も有用な答えを提供しません。ありがたいことに、コミュニティ フォーラムの経験豊富なユーザーが、カスタム ラムダ関数を使用して動作させる方法を教えてくれました。残念ながら、別の機能を動作させようとしていたときに、誤って別の機能を壊してしまいました。実際に公開してユーザーから苦情が来るまで、私はそれに気づきません。自動テストに関してはあまり知識がありません。変更を加えるたびに、重要な部分を手動で慎重にテストします。
全体として、変更は非常に迅速でしたが、何かを見逃したかどうか確信が持てず、それらを実際に公開するのは少し緊張しています。
タイムライン: Ruby On Rails
すべての機能には追加のコーディングが必要ですが、Rails と Ruby は複雑さを圧縮するのに非常に優れており、それほど多くのコードは必要ありません。進行中にテストを更新しているので、すべてが期待どおりに機能しているという確信が得られます。
すべての変更にはカスタム コードが必要なため、設定でオプションをオンにするよりも少し時間がかかりますが、行き詰ることはありません。私はアプリケーションを完全に制御できます。一部の機能については、カスタム コードを使用するか、新しい gem 依存関係を取り込むかのどちらかを選択できます。私は、間違いを犯したことに気づいたら、気が変わって後でリファクタリングできることを知っているので、あまりそこにはこだわりません。また、バージョン管理も使用しているので、アプリケーションの以前のバージョンに簡単に戻ることができます。
その過程で、既存のコードのリファクタリングとクリーンアップも行うので、新しい変更はすべて追加しやすくなります。アプリケーションを問題の領域に適合させることができました。
クライマックス: ユニークな機能
なんてこった、 彼らは は、他の予約アプリで使用されているものとは異なる創造的な新機能を考案しました。とても賢いですね、今まで見たことのないものです。
タイムライン: ローコード
新しいアイデアなので、プラットフォームの作成者が考えたことではないので、それを機能させるのに苦労しています。プラットフォームの前提条件を覆すには多くのハッキングが必要です。
最後に、いくつかのカスタムラムダ関数で動作し、意図した用途に適合するとは思えない方法でプラットフォーム機能のいくつかを使用するものを入手しました。数週間もすれば自分でも忘れてしまうのではないかと思うので、すべてがどのように機能するかを詳しく説明した文書を書きます。
タイムライン: Ruby On Rails
満足するまで解決策を繰り返します。 Rails のデフォルトが何度か邪魔になりますが、私は重要な場所で Rails のデフォルトをオフにして、カスタム コードに置き換えます。コードをクリーンで十分にテストした状態に保ち、最終的にはコードをリファクタリングして、理解しやすく保守しやすい状態に保ちます。
私のアプリケーションの大部分は依然として単純な Rails コードですが、この一部はカスタムです。
解決策: SaaS の軸
残念ながら、この新機能は非常に好評で、エンゲージメントが大幅に増加しています。 彼らは これを社内製品からパブリック SaaS に分離することにしました。
タイムライン: ローコード
オープンソースの Web 開発フレームワークを使用してプロジェクトを最初から書き直す必要がある理由について、プレゼンテーションの準備を開始します。
タイムライン: Ruby On Rails
私は座って、マルチテナンシーを追加するための通常のオプションのどれが最も効果的かを検討し始めます。アプリケーションの残りの部分は変更する必要はなく、すでに運用準備が整っています。結果的には面白い企画になるかも知れませんが…
ナレーター: しかし、なぜこのようなことが起こるのでしょうか?
将来について確信があれば、プロジェクトを計画するのは簡単です。すべての要件を事前に知っていれば、準備を整えることができます。残念ながら、この確信を持っていることは非常にまれです。確実性の次に良いのは、将来の選択肢をたくさん持つことです。
そしてこれが問題の核心です。ローコード システムは、次の理由からオプション性が低くなります。
- 通常、それらは閉鎖系です。
- 特定のケースを非常にうまく解決できるように、一般性を低くしてあります。
Rails も、それほどではありませんが、あまり一般的ではありません。しかし、そうであっても、オープン システムであるため、専門化が問題に適合しない場合はレイヤーを剥がすことができます。そして、それはアプリの一部でのみ実行できます。
Rails プロジェクトは将来の柔軟性をさらに高めます。これにより、不確実性の下では価値が高まります。
これは、どのオープンソース Web フレームワークにも当てはまります。そして、あなたは正しいです。しかし、主に複雑さの圧縮を目的とした 20 年間の進化を考えると、現在、迅速な開発には Rails が最良の選択肢であると私は信じています。これが、初期開発ではローコードで真っ向勝負を挑み、すべてのオプションをテーブルに残しておくことができる理由です。
何年も変わっていない内部システムを置き換える場合は、ローコードがおそらく良い考えです。アプリケーション内にイノベーションの可能性があるとしても、それほど多くはありません。
また、プログラマーではない場合は、ローコードが最適です。しかし、この記事を読んでいるあなたはおそらくプログラマーです。それで、なぜそれについて考えるのですか?ただ rails new。
#Rails #はローコードよりもローコードの方が優れています