オープン ソース月間を記念して、 ShlinkedInについて書きたいと思います。 ShlinkedIn は非常に人気のある Web サイトのパロディであり (読者の推測に任せます)、 主任開発者によると、何千人ものユーザーがいます。約 1 年前、 HackerNewsの 1 位になりました。 Tech Team Weeklyというイギリスのポッドキャストで彼らのことを初めて知りました。
完全に明確にするために、私はそれを構築した人ではありません...ただし、このブログ投稿を書くための口実として特徴付けられるいくつかの小さな貢献をしました.何気ない読者は、この Web サイトはソフトウェア エンジニアのカジュアルなサイド プロジェクトだと思うかもしれませんが、それは正しいでしょう。
ここのGitHubで見つけることができる技術スタックは、実際には非常に興味深いものです。 Holtz が何かを構築する練習をしたかったので、比較的新しいPhoenix LiveViewを使用しています。 ShlinkedInの核となったのはこの動画
これは、ソーシャル ネットワークがどのようなものかを示すデモンストレーションです。広告はありません。データ収集はありません。代わりに、オプションの有料層で収益を上げています
それは、LinkedIn と、LinkedIn が時々表しているように見える喧噪の文化を批判している。また、プラットフォームとともに進化します。右側には誰でも作成できるニュースの見出しがあり、各投稿にはまったく意味のないリアクション ボタン (「ミルク」や「ホット ソース」など) があり、サイト全体が終わっています。 NFT の生成、プロフィール ページのアニメーション、Spotify の統合など、最先端の高度な機能。彼らは AI 機能さえ持っていて、私は彼らのディスコードで彼らが使用しているライブラリを尋ねました.彼らは「狂ったライブラリ」を使用していると言いましたが、冗談だと気付くのに少し時間がかかりました
オープン ソースの利点の多くは明白です。それは無料であり、「みんなで遊ぼう」というのは、 Linus Torvaldsの言葉です (そうです、オープン ソースに関する投稿で Linus Torvalds の言葉を引用する義務があると感じました。企業がオープンソース ソフトウェアを使用して利益を上げることを許可するかどうかについて誰かと議論している場合)。しかし、それはまた、チュートリアルや、あえて言えば、LeetCode の質問よりもはるかに現実的で関連性のある学習の機会を提供します。
アカウントを作成してログインすると、投稿することができます。ボタンが気になり、いくつか試してみました。不要な絵文字を投稿に追加できますが、数は指定されていません。ここでは標準の「ctl + z」が機能しないため、「元に戻す」ボタンが役立ちます。
それで、あなたはそれをどのようにしますか?他のアプリケーションで人々が「元に戻す」を実装する方法を調べますか?すべての変更を追跡するために、スタックのような単純なデータ構造を使用するだけでしょうか?多分それはもっと簡単です...これらのボタンにはランダムなものは何も組み込まれていないので、単純なカウンターを使用してみませんか?これらは、意味のある機能を実装するために自問しなければならない種類の質問であり、実際に現場で行う種類のものでもあります (はるかに大規模で複雑なプロジェクトではありますが)。
…しかし、彼らがそれを待っている間に、私はまったく別のことに取り組むことにしました。 「間隔を空けすぎ」ボタンがありましたが、何もしないようでした。私は彼らの GitHub にイシューを提出しましたが、開発者は、段落の区切りがある場合にのみ何かを行うことを明確にしました。これは、私が真剣であることを示す簡単な成果のように思えました。
それほど複雑ではありませんでしたが、想像していたよりも簡単ではありませんでした.上記のフォームを処理するために、それぞれ JavaScript と Elixir で記述された 2 つのファイルがあります。開発者は、Phoenix LiveView がフロントエンドであることを明らかにしましたが、表面的には、このプロジェクトはフロントエンドとバックエンドをぼかすことで二分法に逆らっているように見えました。 Phoenix LiveView の作成者は、ブログ投稿でこれを裏付けているようです。Phoenix LiveView はまったく異なるものです。
LiveView は、クライアントとサーバーの両方を単一の抽象化で解決するため、抽象化のレイヤーを取り除きます。 HTTP はほぼ完全になくなります。 REST はもう必要ありません。もう JSON は必要ありません。 GraphQL API、コントローラー、シリアライザー、またはリゾルバーはありません。 HTML テンプレートを記述するだけで、ステートフル プロセスによってブラウザーと同期され、必要な場合にのみ更新されます。また、JavaScript を記述する必要はありません。
--ソース
数時間前の時点で、私は ShlinkedIn の寄稿者になりました。最初にアラートを出しましたが、それはお粗末で、同様のエラーの形式と一致しませんでした。代わりに、新しいタグを追加して ID で識別し、少量の JavaScript を記述して段落の区切りを検出し、条件に達した場合にのみ余分なスペースを追加することにしました。
「var」を使うべきではなかったかもしれませんが、教えないでください。
Phoenix LiveView と Elixir はどのように機能しますか?それらについてもっと学ばなければならないと思っていたのですが、これはただの JavaScript でした。また、なぜ JavaScript を使用しなければならなかったのですか? Phoenix LiveView の作成者が、ここで JavaScript は不要であると主張しているように見えるのはなぜですか?
Phoenix LiveView がフロントエンドとバックエンドの境界線をあいまいにしているという私の考えは正しいですか、それとも間違っていますか? Medium の多くの人が、Phoenix LiveView は非常に効率的であると主張していますが、そうでしょうか?もしそうなら、どうやってそれをテストしますか?
ShlinkedIn は創造的で、オープン ソースであり、新しいものや新しいアイデアを活用しています。それはまたとても楽しいです…それは、独自の宇宙バージョンのThe Onionさえ持っています。
彼らの Discord をフォローすると、ソーシャル メディアがどのように拡大するかを一目で確認できます。投稿者が匿名で有名人のパロディをしている場合、人種差別的なコメントをモデレートするかどうかなど、あまり面白くない議論もあります。彼女の発言は実際に人種差別主義者ですか、それとも人種差別主義者のコメントをパロディー化したものですか?
このプロジェクトは新しくて興味深いので、HackerNoon の注目に値すると思います。
(読んだ内容が気に入ったら、私のブログをフォローすることを検討してください)