window.pipedriveLeadboosterConfig={です。 ベース:'leadbooster-chat.pipedrive.com'、 companyId:11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2、 } ;(function () { var w = window もし (w.LeadBooster) {なら console.warn('LeadBooster already exists') } else { w.LeadBooster = { {. q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: 関数 (n) { { this.q.push({ t: 'o', n: n, h: h }) this.q.push({ t: 't', n: n }) }, } } })() TheCodestReview #5 - 隔週刊ソフトウェア・エンジニアリング・ジュース - The Codest
The Codest
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 産業
    • フィンテック&バンキング
    • E-commerce
    • アドテック
    • ヘルステック
    • 製造業
    • 物流
    • 自動車
    • アイオーティー
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
  • 会社概要
  • サービス
    • ソフトウェア開発
      • フロントエンド開発
      • バックエンド開発
    • Staff Augmentation
      • フロントエンド開発者
      • バックエンド開発者
      • データエンジニア
      • クラウドエンジニア
      • QAエンジニア
      • その他
    • アドバイザリー
      • 監査&コンサルティング
  • 価値
    • CEO
    • CTO
    • デリバリー・マネージャー
  • チーム
  • Case Studies
  • ノウハウ
    • ブログ
    • ミートアップ
    • ウェビナー
    • リソース
採用情報 連絡先
戻る矢印 戻る
2021-02-02
ソフトウェア開発

TheCodestReview #5 - 隔週刊ソフトウェア・エンジニアリング・ジュース

The Codest

カミル・フェレンス

成長部門責任者

このエピソードは、クリスマス休暇前の12月に公開する予定だったので、遅れたのは私がボトルネックになっているようだ。優先順位の高い仕事がいくつか邪魔をして、週ごとに公開を遅らせ続けてきたが、今日がその日だ。

PcプリンシパルGIF より ImbusydoingstuffのGIF

前回のエピソードでは、職場におけるユーモアの重要性を取り上げた記事についてコメントするよう予告したが、その一方で、この記事はもっと評価されるべきだと思ったので、近々(たぶん)ブログ記事全体を書くつもりだ。    

あなたが私を信じることを約束するGIF より Ipromiseyou GIF

ここ数週間、忙しかったこと: 

a)クリスマスの前に、私は『虹色デイズ』のプレミア・エピソードで幕を開けた。 「防弾CTO」ウェビナー・シリーズ (SaaSを取り上げた2月の第2回にご期待ください CTOs詳細は私のLinkedInで近日公開)。

b) 2021年に向けての成長計画を調整中で、RubyとJSの中核事業を超えて、Magentoと 製品 設計能力 社内.

自己宣伝はこれくらいにして、#TheCodestReviewシリーズ第5回にご招待しよう。 

トピックス チーム はこの時のために準備してきた: 

  1. スケーラブルで保守性の高いフロントエンドアーキテクチャ。
  2. 従来のコミット。
  3. Ruby 3.0.0リリースアップデート。

今週は、Reactのエンジニアがフロントエンドアプリケーションに関するコメントと従来のコミットを、RubyドリームチームがRuby 3.0.0を配信します。

今日、多くの開発者は時間節約のために、すでに作られたUIライブラリや再利用可能なコンポーネントを使用しています。それは良い習慣であり、多くの時間を節約するのに役立っているが プロジェクト で処理するだけでは十分でないことを理解するだろう。 コード.

ドメイン駆動開発(DDD)とコンツェルン分離(SoC)だ。フロントエンドのアーキテクチャでも使うことができる。

DDDでは、似たような機能をグループ化し、他のグループ(モジュール)からできるだけ切り離そうとしている。

一方SoCでは、例えばロジック、ビュー、データモデルを分離する(例えばMVCやMVVMデザインパターンを使う)。

良いやり方やパターンはたくさんあるが、私にはこのやり方が合っている。

このパターンを使うと、このようになる:

最初に、ユーザーはアプリのルーティングによって正しいモジュールにリダイレクトされます。すべてのモジュールは完全に含まれている。しかし、ユーザーはいくつかの小さなアプリケーションではなく、1つのアプリケーションを使うことを期待しているので、いくつかのカップリングが存在する。このカップリングは、特定の機能やビジネスロジックに存在します。

そして、我々はこのような構造を持っている:

appフォルダ - アプリケーション層

assets - 写真、フォント、アイコンなどのフォルダ。

コンポーネント - 複雑なロジックを持たない、再利用のためのコンポーネントであるべきだ。

config - ここにグローバルな状態を保存します。

lib - 複雑な関数やロジックを計算するためのフォルダです。

モジュール - これが我々のモジュールだ

pubsub - データ構造を記述するスキーマを格納する場所。

styles - css/scss コード用

この構造は、成長するアプリケーションに対応し、バグを少なくするのに役立つだろう。また、別々のモジュールでより快適な作業部分を作り、それらをテストし、リファクタリングとデバッグをより簡単にするのに役立ちます(別々のモジュールのため)。

モジュールのアーキテクチャやAPIとのつながりをもっと深く見ていけば、そのようなものが得られるだろう:

app'フォルダーがあれば、API呼び出しのコードとデータを'config/store'に保存した'api'フォルダーを作成する。ここには、アプリケーション全体で使用する静的で不変なデータを保存します。

また、'pubsub/schema'フォルダでは、以下のような特定のデータ型について説明します。 JavaScript オブジェクトがある。

すべてのモジュールは、私たちが使う必要のあるデータ(ユーザー、ルート、テーブル、アクションなど)を内部に含んでいます。すべてのモジュールはアプリケーションレイヤーと接続され、すべての必要なデータを受け取ります。

フロントエンドはユーザーにとって最初の入り口です。私たちのフロントエンド・プロジェクトの機能が増えるにつれて、バグも増えていきます。しかし、私たちのユーザーは、バグがなく、新しい機能が迅速に提供されることを期待しています。これは不可能です。しかし、優れたアーキテクチャーを使うことで、私たちは可能な限りこれを達成しようと努力するしかないのです。

従来のコミット by Sathyabodh Mudhol at DZone

The Codestソフトウェア開発

より良い方法で仕事にコミットする必要性の理由

あなたが入社したばかりの会社にいるとしよう。JavaScriptが言語になる前のコードベースや、Netscapeがページを読み込むのに何年もかかったようなコードベースを紹介されるまでは、すべての人があなたに親切で、すべてがうまくいっているように見える。

コードの継承は、新しい開発者をプロジェクトに導入する際に大きな問題となるようだ。コードを読むことは一つのことだが、アプリケーションがどのように開発されたかを理解することは全く同じではない。多くの場合、コミットは有用であり、なぜこのconsole.logがlinterによってキャッチされなかったのか、なぜその厄介な// TODOが最初にアノテーションを作成した開発者の子供たちのためにあるのか、といった文脈を与えてくれる。

まず、標準化されていないコミットルールよりも、従来のコミットの方が優れている理由から説明しよう。

もし私たちが新しい開発者をプロジェクトに雇い入れたとして、そのプロジェクトのコミットのほとんどが、「これはうまくいくはずだ」とか「フッターのスリーピーを至急修正してくれ」といった内容のメッセージで構成されているとしたら、あなたの頭の中には何が浮かぶだろうか?

赤旗の理由はこうだ:

  • 具体的に何をすべきかはわからない
  • 寝ぼけていて、間違う可能性があるのに、なぜ誰かが何かを押したのか?
  • ASAPの注釈が見られるということは、修正が急がれたのでしょうか?

チームが変更をコミットする際にカスタムルールを適用することができるため、コミットがしっかりしたものである必要があり、ミスの余地が少なくなる。もはやチェックアウトするだけの手段ではありません。あなたがコミットの内容を知っていたことを他の人に伝える署名なのだ。あなたが行った作業が正しく署名されていない場合、ほとんどの場合エラーとなり、次のようなメッセージが表示されることは言うまでもありません。

あなたのチームは、ASAPや汚い言葉をブラックリストに載せることができるように、特定のキーワードを禁止するルールを設定したい可能性があります。

工具

プロジェクト開始時に本当に役に立つのは、自分のチームがどのようにプレーしているのかを皆に紹介することだ。 開発チーム 新しい開発者に変更をコミットしてほしい。そして、あなた方全員が合意したことを彼らが維持するのを助けるツールをセットアップしてください。

私が仕事をする機会があったツールのひとつは、次のようなものだった。 コミットリント そのおかげで、ルールがない新しいプロジェクトに参加し、チームがルールの導入に前向きである場合、従来のコミットを実践するようになった。

設定を扱い、それをチーム全体に広げる場合は、単にnpmパッケージを作成し、各プロジェクトでmpn i -Dするだけでいい。そうすることで、プロジェクト内の全員が常に同じ見解を持つことができ、必要であれば、プロジェクト間で最後に何が変更されたのか(なぜ変更されたのか)を理解しながら歩くことができる。

複数のメリットを持つ友人

さて、すべてをセットアップし、なぜCCを使い始めるのが良いアイデアなのかを理解したら、今適用したルールに沿ってプログラミングするのが一番良いだろう!私たちはコミット方法を標準化し、コミットの真意にもっと注意を払うようにしています。フラグが存在する場合、ステージング上で素早くテストできるようにフックをセットアップしてはどうでしょうか?私たちはサービスを過剰に利用したくないし、必要なときにコストを削減したい。

あなたがPWAに取り組んでいて、その可能性をフルに試すためにSSLが必要で、テストプラットフォーム上にSSLがあると仮定しましょう。今必要なのは良いコミットだけです。feat(PWA):マニフェストアイコンworkboxセットアップアップアップロードのラインに沿った何かが、テストと歯車を動かす機械全体のトリガーになるでしょう。manifest.jsonのような静的なデータをアップロードするだけならその必要はないので、コミットのpostfixとしてフラグ[TEST_SKIP]を追加します。これにより、CIは新しいアセットをテスト環境にアップロードするだけで、テストをスキップできるようになります。詳しくは これ

しばらくすると、CHANGELOGの生成のしやすさや、以下のようなバージョン管理の改善など、他の利益も見えてくるはずだ。 セマンティック・バージョニング.それでもコミット・メッセージの書き方を変える気にならないのなら、足の指を冷たい水に浸して、しばらくプライベート・リポジトリで使ってみれば、考えが変わるかもしれない。

ハッピー・コンベンショナル・コミット!

Ruby 3.0.0リリース・アップデート by Ruby コミュニティ

コミュニティで長い間待ち望まれていたRuby 3.0.0のリリースが、クリスマスに日の目を見た。The Codestでは毎週開発ミーティングを開催し、エンジニアが技術トレンドや注目すべき新発見について議論することで、知識を共有する文化を育んでいます。以下は、Ruby 3.0.0の重要な変更点について、シニアRubyエンジニアが彼の主観的な視点から議論したデモ・デーのスライドへのリンクです:

https://drive.google.com/file/d/1rboAusV1UTWXYMVGuLHx6O90lXrgkmnO/view?usp=sharing

さらに、私たちのRubyメンターがプルリクエストで新バージョンに貢献し、無事マージされました。プライバシー・コントロールの方法についての詳細は、開発責任者の短い記事をご覧ください。

https://thecodest.co/blog/ruby-3-0-ruby-and-lesser-known-privacy-control-methods

LinkedInや私のEメールでのフィードバックも大歓迎です。

次回は2月末、ShopifyのCTOにインタビューしたポッドキャストのレビューをお届けします!

また会おう。

ラウンド2 GIF より ラウンド2 GIF

Ruby開発者オファー

続きを読む

TheCodestReview #4 - 週刊ソフトウェア・エンジニアリング・ジュース

TheCodestReview #3 - 週刊ソフトウェア・エンジニアリング・ジュース

TheCodestReview #2 - 週刊ソフトウェア・エンジニアリング・ジュース

関連記事

ソフトウェア開発

将来を見据えたウェブ・アプリケーションの構築:The Codestのエキスパート・チームによる洞察

The Codestが、最先端技術を駆使してスケーラブルでインタラクティブなウェブアプリケーションを作成し、あらゆるプラットフォームでシームレスなユーザー体験を提供することにどのように秀でているかをご覧ください。The Codestの専門知識がどのようにデジタルトランスフォーメーションとビジネス...

ザ・コデスト
ソフトウェア開発

ラトビアを拠点とするソフトウェア開発企業トップ10社

ラトビアのトップソフトウェア開発企業とその革新的なソリューションについて、最新記事でご紹介します。ラトビアの技術リーダーたちがあなたのビジネスをどのように向上させるかをご覧ください。

thecodest
エンタープライズ&スケールアップ・ソリューション

Javaソフトウェア開発の要点:アウトソーシングを成功させるためのガイド

outsourcingのJavaソフトウェア開発を成功させるために不可欠なこのガイドを読んで、The Codestで効率性を高め、専門知識にアクセスし、プロジェクトを成功に導きましょう。

thecodest
ソフトウェア開発

ポーランドにおけるアウトソーシングの究極ガイド

ポーランドのoutsourcingの急増は、経済、教育、技術の進歩がITの成長とビジネス・フレンドリーな環境を促進していることによる。

ザ・コデスト
エンタープライズ&スケールアップ・ソリューション

IT監査ツール&テクニック完全ガイド

IT監査は、安全かつ効率的で、コンプライアンスに準拠したシステムを保証します。その重要性については、記事全文をお読みください。

The Codest
ヤクブ・ヤクボヴィッチ CTO & 共同創設者

ナレッジベースを購読して、IT部門の専門知識を常に最新の状態に保ちましょう。

    会社概要

    The Codest - ポーランドに技術拠点を持つ国際的なソフトウェア開発会社。

    イギリス - 本社

    • オフィス 303B, 182-184 High Street North E6 2JA
      イギリス、ロンドン

    ポーランド - ローカル・テック・ハブ

    • ファブリチュナ・オフィスパーク、アレハ
      ポコジュ18、31-564クラクフ
    • ブレイン・エンバシー, コンストルクトースカ
      11, 02-673 Warsaw, Poland

      The Codest

    • ホーム
    • 会社概要
    • サービス
    • Case Studies
    • ノウハウ
    • 採用情報
    • 辞書

      サービス

    • アドバイザリー
    • ソフトウェア開発
    • バックエンド開発
    • フロントエンド開発
    • Staff Augmentation
    • バックエンド開発者
    • クラウドエンジニア
    • データエンジニア
    • その他
    • QAエンジニア

      リソース

    • 外部ソフトウェア開発パートナーとの協力に関する事実と神話
    • 米国から欧州へ:アメリカの新興企業がヨーロッパへの移転を決断する理由
    • テックオフショア開発ハブの比較:テックオフショア ヨーロッパ(ポーランド)、ASEAN(フィリピン)、ユーラシア(トルコ)
    • CTOとCIOの課題は?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • ウェブサイト利用規約

    著作権 © 2025 by The Codest。無断複写・転載を禁じます。

    jaJapanese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek jaJapanese