エンジニア向けの最新情報を網羅

TechFeedなら、世界中から収集した
エンジニア向けの最新情報をチェックできます。

さあ、技術を楽しもう。

エンジニアがエンジニアのために作った、技術情報収集&共有プラットフォーム。

TechFeedとは

エンジニアのための、情報収集と共有のためのプラットフォームです。

情報収集の効率を最大化

考え抜かれたデザインとパーソナライズで、面白い記事、読むべき記事が目に触れやすい!

エンジニア向け情報を網羅

180以上の専門チャンネルを自在にフォロー!トレンドからマニアックまで、エンジニアの好奇心を満たします。

海外情報もカバー

海外発の情報にもリアルタイムに触れられます。自動翻訳機能も活用して、一次情報に直接触れられます。

機能・特徴

技術情報収集に特化した様々な機能を搭載!

ホットエントリー

注目記事を自動で厳選!これさえ読んでいれば技術トレンドはOK!

TechFeedスコア

技術記事の面白さを数値化!数値が高いほど面白い!絞り込みも可能です。

パーソナライズ

使えば使うほどあなた好みに。読むべき記事がすぐ見つかる!

チャンネル・カテゴリー

180以上の専門チャンネルと13の技術カテゴリーで、あらゆる情報を網羅!

ブックマーク

あらゆる情報をブックマーク可能!検索も整理も簡単に行えます。

高度なシェア機能

X(Twitter)にもPocketにもはてなブックマークにも、1クリックでシェアが可能!

自動翻訳

海外記事を自動で翻訳!英語記事を読むハードルが圧倒的に下がります。

コメントも、ツイートも

記事にコメント&シェアできて、ツイートも自動収集。みんなの意見が読めます。

お仕事の情報も

あなたにぴったりの仕事情報も自動でおすすめ。仕事探しもTechFeedで。

習慣化を促進

見える化や通知、ゲーミフィケーションで、技術情報収集の習慣化をお手伝い。

オリジナルコンテンツ

「最先端を、より深く。」がテーマのイベントや記事を発信中!

公認エキスパート

180名を超える公認エキスパートが記事をおすすめ、イベント登壇も!

推薦コメント

技術情報収集に特化した様々な機能を搭載!

及川 卓也

及川 卓也

Tably株式会社 Technology Enabler

TechFeedは自分の興味のある領域の情報をタイムリーに高い網羅性で提供してくれますし、自分では網を張っていなかった領域についても絶妙なさじ加減でセレンディピティ的に勧めてくれ、今までにありそうで無かったツールとして重宝しています。

古川 陽介

古川 陽介

Japan Node.js Association 代表理事

TechFeed で情報収集するようになってしばらく経ちますが、他の情報収集ツールよりも広く、深いジャンルで収集してくれるため非常に便利です。特におすすめのチャンネルは Web 標準 です。拾えてなかった情報が拾えてます。

鹿野 壮

鹿野 壮

インタラクションデザイナー

まさにこれを求めていました。
フロントエンド技術のための情報源は多く、新鮮で質の高い情報を取捨選択するのは時間がかかっていました。TechFeed では海外・国内問わず自分好みの情報を得られるので、時間が節約できて助かります。

あんどう やすし

あんどう やすし

Google Developers Expert

Twitterを情報収集に使いたいけどノイズが多すぎて辛いっすって人(つまり自分)にとてもオススメです!

花谷 拓磨

花谷 拓磨

ElevenBack LLC CEO / LINE株式会社 Senior Front-End Engineer

TechFeed は、現代のエンジニアに求められる「開発」と「ビジネス」の知識を同時に収集できる唯一無二のツールです。
スタートアップやプロダクトマネジメントのチャンネルを活かせる、上昇志向のエンジニアにこそおすすめできるツールです。

長沢 智治

エンジニアたるもの忙しさの中でもフレッシュな情報に触れることは欠かすことができない大切なお仕事です。TechFeedはフレッシュな情報を浴びることができるひとつの選択肢となります。

TenForward

エンジニア間で話題になっている記事などがざっと見渡せてコメントなども読めて情報収集がはかどります!!

chie

共通認識の作りにくい時代に、これチェックしとけば良い!っていうリソースを持っているのはきっと強みになります。

Brutus

世界中の様々なテックニュースや技術ブログの情報が収集及び抽出されています。
例えば、日本の技術ブログを見ていると、ポエムや読書感想文の記事にストレスを感じる場合があります。
TechFeedでは、そのうような記事は排除されているので、純粋に技術情報のみをまとめて知りたい場合には最適です。

tadsan

ホットエントリー・おすすめ・トレンドが一目で見やすいデザインになり、このリニューアルで情報収集を習慣化しやすくなりました!

Shu Oogawara

技術情報収集に特化した、唯一無二のサービスです。毎朝眺めて気になった記事を読んでいくサイクルを作ってしまうと、情報の洪水に押し流されている感覚がなくなりました

高崎 健太郎

技術情報について、今ホットなものが見える化されています。時間が少ない中でも重要な情報へアクセスしやすかったり、パッと一覧を見るだけでも流行っているものの傾向を掴むことができます。

メディア掲載

よくあるご質問

Q. TechFeedは無料で利用できますか?

A. はい、無料でご利用いただけます。

Q. TechFeedにモバイルアプリはありますか?

A. はい、ございます。こちらからダウンロードしてください。 iOS版 / Android版

Q. TechFeedにデスクトップアプリはありますか?

A. 現在はありません。ご要望に応じて開発したいと考えています。

Q. TechFeedで、記事とともに表示されているスコアは何でしょうか?

A. TechFeedスコアと言って、「技術記事の面白さ」を測る指標として、TechFeedが独自に開発したスコアになります。TwitterやFacebook、はてなブックマークなどのスコアと、TechFeed内での既読数などを合わせて算出しています。詳しい算出アルゴリズムについてはこちらで公開しています。

Q. TechFeedのパーソナライズはどのように行われていますか?

A. ユーザーの皆さまがこれまで読んだ記事とチャンネルのフォロー状況をメインとし、チャンネルごとに関心度を算出しています。関心度が高く、またTechFeedスコアの高い記事が優先して表示されます。

Q. 自分の関心度を確認する方法はありますか?

A. 現在はありませんが、関心度の高さによっておすすめされた記事は、そのチャンネルが強調表示(太字)されています。それによって、自身の関心度を推測することは可能です。

Q. TechFeedへのフィードバックはどこから行えばよいでしょうか?

A. フィードバックを送信する機能(設定→フィードバック)をご利用頂くか、Twitterで @techfeedapp までお気軽にご連絡ください。また、ユーザーコミュニティも立ち上げ予定です。

Q. TechFeed公認エキスパートに興味があります。どうやったらなれますか?

A. 現在公認エキスパートになるには、既存のエキスパートからのご推薦、もしくは運営企業からのお声がけ(主にイベント登壇)に限らせていただいております。

Q. TechFeed公認エキスパートになるとどのようなメリットがありますか?

A. エキスパート専用のSlackにご参加いただき、他のエキスパートとの交流なども図っていただけるほか、コメントやおすすめを行った際に金銭的な対価を得られるプログラムを用意しています。また、公式な肩書としてご利用いただける、イベント登壇の打診を優先して行わせて頂く、などのメリットもございます。

さあ、技術を楽しもう。

エンジニアがエンジニアのために作った、技術情報収集&共有プラットフォーム。

TechFeed AdvanceTechFeed Advance
フォロー

4月16日、Borretti氏が「Two Years of Rust」と題した記事を公開し、注目を集めている。この記事では、Rustを用いた2年間の開発経験の振り返りとRust言語の特徴について詳しく紹介されている。

以下に、その内容を紹介する。


この記事では、大きく「良い点(The Good)」と「悪い点(The Bad)」に分けてRustの特性が語られている。

The Good

Rustの良い点として、筆者は以下を挙げている。

パフォーマンス(Performance)

Rustは高速に動作する。どの言語でも低速なコードを書くことは可能だが、Rustはボトルネックを取り除けばほとんどの場合十分に速く動くという。Pythonなどの言語では言語自体の性能限界で足を引っ張られがちだが、Rustは「言語としての性能天井」が高いため、最適化の余地が大きいことを強調している。

ツールチェーン(Tooling)

Rustのビルドシステム兼パッケージマネージャであるCargoは非常に優れており、エラーもほぼなく、挙動が予測可能で扱いやすいと評価している。依存関係の管理が自動的かつ宣言的で、他の言語にありがちな環境変数設定や仮想環境の煩雑さなどがない点が高く評価されている。

型安全性(Type Safety)

Rustは合併型(sum types)やオプション型、厳密な型変換ルールを備えており、それによって非常に堅牢なコードが書けると述べられている。コンパイラによって型安全性が保証されるため、テストを作ってもバグが検出されにくいほどに壊れにくいコードを書くことができるという。

エラーハンドリング(Error Handling)

Rustは例外を使わず、Result<T, E>型と?演算子を組み合わせることで、Goのような“エラーを戻り値として返す”スタイルとJava/Pythonのような“例外処理”のいいところを両立している。以下のようなコードが、

  fn foo() -> Result<(), DbError> {
      let db = open_database(path)?;
      let tx = begin(db)?;
      let data = query(tx, "...")?;
      rollback(tx)?;
      Ok(())
  }

コンパイラの糖衣構文によって、次のような詳細な match 連鎖に相当する点が特徴だ。

  fn foo() -> Result<(), DbError> {
      let db = match open_database(path) {
          Ok(db) => db,
          Err(e) => {
              return Err(e);
          }
      };
      // ...(中略)...
      Ok(())
  }

借用チェッカー(The Borrow Checker)

Rustの最大の特徴である借用チェッカーによってメモリ安全性を確保している。筆者自身は別のプログラミング言語の研究を通じて借用チェッカーを深く理解していたため苦労は少なかったが、一般には学習段階で「コンパイラと戦う」ような体験があるとも言われる。コツとして、C/C++のようなコードをそのままRustに置き換えるのではなく、Rustの線形型やライフタイムの考え方に沿った設計を行うことが重要だとしている。

非同期処理(Async)

「色付き関数問題(coloured functions)」(※)としてよく批判される非同期処理だが、筆者は「OSスレッドのパフォーマンス制約を考えれば、スタックレスコルーチン(Rustのasyncモデル)は高い性能を得られる現実的な解だ」としている。ライブラリ実装者や言語仕様策定者には複雑であっても、利用者としてはasync fnawaitを付けるだけで使えるため、それほど大きな問題とは感じないという。

※「色付き関数問題」とは、非同期処理を導入した言語やライブラリでしばしば発生する設計上のジレンマを指す。同期関数(通常の関数)と非同期関数(async fn など)という “色の異なる” 関数が共存 する結果、次のような連鎖的制約が生じる。

  • 呼び出し制限
    • 同期関数からは非同期関数を直接呼び出せず、呼び出す側も非同期化(色が変わる)を迫られる。
  • 色の伝播
    • 非同期関数を上位レイヤへ持ち上げるたびに、その関数を呼び出すすべてのコードも async/await 対応を余儀なくされ、コードベース全体に“色”が伝播する。
  • 境界コスト
    • “同期 ↔ 非同期” の境界を跨ぐ箇所では実行コンテキスト(ランタイム、エグゼキュータ)を明示する必要があり、実装とテストの複雑度が上がる。

この「関数に色を付ける」という比喩は、Bob Nystrom 氏のブログ記事 What Color Is Your Function? に由来する。Rust でも async fn が「色付き」、通常の関数が「無色」とみなされるため、設計段階で非同期境界を慎重に引く必要がある。

リファクタリング(Refactoring)

型エラーが明確に示されるので、大規模なリファクタリングも「絵合わせ」のようにエラーを潰していけばよい点が魅力だとしている。

採用(Hiring)

Rustプログラマの採用は実は難しくないと述べている。Rustに興味をもつ人材は学習意欲が高いケースが多く、逆にPythonなどメジャー言語は応募者数が多すぎて精査が難しい面もあるという。

感情面(Affect)

筆者はPython + Djangoで感じていた「コードが壊れやすい」「パフォーマンスは大丈夫か」などの不安感がRustでは大幅に減り、堅牢性と美しさを両立できる充実感があるという。

The Bad

続いて、Rustの「悪い点」として筆者が挙げている部分をまとめる。

モジュールシステム(The Module System)

Rustではコンパイル単位が「クレート(crate)」であり、モジュール(module)は名前空間や可視性を管理するための仕組みにとどまる。大きなクレートはビルドが遅く、クレート分割は管理が煩雑になるなどのトレードオフがあると指摘している。

ビルド性能(Build Performance)

ビルド時間が長くなりがちなのはRustの最大の課題だと述べられている。LLVMのコンパイラバックエンドによる部分や単相化(monomorphization)など言語仕様上の問題もあるため、結局はリソースを増やして対応するのが手っ取り早いとまとめている。クレート分割やキャッシュ利用などの方法はあるが複雑で、最終的にはCIリソース増強が現実的とまとめる。

モック(Mocking)

依存関係を差し替えながらテストする仕組み(モック)をRustで実装するのは、型やライフタイムを明示的に扱う分だけ煩雑になると指摘されている。traitと実装/モックを切り替える方法は動くが、記述量が多くなる例として以下のインタフェースが示されている。

  trait InsertUser<T> {
      fn execute(
          &mut self,
          tx: &T,
          email: &Email,
          password: &Password
      ) -> Result<(), CustomError>;
  }

表現力(Expressive Power)

過剰なプロシージャルマクロやトレイトの濫用はコードベースを複雑化させかねず、コードの流れを追いづらくなる危険があると警鐘を鳴らしている。


以上が記事の概要である。Rustは堅牢性や高速性、優れたツールチェーンなど多くの利点がある一方、大規模開発ではビルド時間やモジュール分割、モックテストの煩雑さなど課題も存在することが示されている。

詳細はTwo Years of Rustを参照していただきたい。

Copyright © TechFeed Inc. All rights reserved.