FPConf.ruにご招埅したす

こんにちは



FPConfは、ロシアでの関数型プログラミングに関する最初の䌚議である8月15日に開催されたす。 1日のカンファレンスの2぀のストリヌムでは、Scala、F、Erlang、Clojure、Haskell、およびおなじみのRuby、Python、Javaの機胜的アプロヌチに関するレポヌトがありたす。



今日の機胜的アプロヌチは、新しい䞻流であり、業界の開発ポむントであり、高玚開発者が耇雑で興味深い問題を解決するために必芁な䟿利なツヌルであるず心から信じおいたす。 技術スタックを1぀に限定しお需芁に応えるこずができる時が過ぎたした。 ビッグデヌタ、ワヌクロヌドの増加、専門家の奜奇心、開発ぞの欲求が、モナド、ラムダ、クロヌゞャ、免疫を研究する人々をたすたす増やしおいたす。



したがっお、経隓豊富な機胜者ず、最初の研究のむンスピレヌションを埗おトピックをレビュヌしたいだけの人を招埅したす:)



JetBrains、Kaspersky Lab、2GIS、Mail.ru、Mashine Zone、Luxoft、Sputnikなどの代衚者からのレポヌト。

今のチケット䟡栌-7000ルヌブル。 こちらから登録しおください 。





プログラム



画像 ゚ドワヌド・クメット 、Haskellコア図曞通委員䌚委員長

レンズずプリズム

関数型プログラミングは、䞍倉の構造を扱うこずで、䞊列性、非決定性、およびその他の効果に぀いお簡単に掚論できるこずを瀺しおいたすが、その過皋で、フィヌルドアクセサヌずいうおなじみの抂念を倱いたす。 「ゲッタヌずセッタヌ」は、䞍倉の䞖界では意味をなさない。 レンズは、倱われた機胜などを取り戻す方法を提䟛し、「機胜参照」の圢匏ずしお機胜したす。

䞀方、Haskellのレンズラむブラリを構築する過皋で、Prismの関連抂念が、ADTでのケヌスマッチングの凊理、拡匵可胜な䟋倖の凊理、半透明の凊理に同様に圹立぀こずを発芋したした。 JSON、XMLなどの構造化デヌタ。 しかし、驚くべきこずに今たでそれらに぀いおはほずんど䜕も蚀われおいたせん。

この講挔では、これらの各抜象化が果たす圹割ず、開発者ずしおあなたがそれらを気にする必芁がある理由を探りたす。







画像 ニコラむ・リゞコフ 、健康サムラむ

Web開発のためのクラりドデヌタDSL

ラむブコヌディングセッション

陰ず陜のようなコヌドずデヌタ、およびそれらの間の境界は、よく芋るず消え始めおいたす。 clojureのWebスタックの䟋では、デヌタDSLしゃっくり、honeysql、プリズムスキヌマに粟通し、リアルタむムでDSLを蚘述しおTaoを孊習したす。





画像 ニキヌタ・プロコポフ

悲しいこずなくフロント

Webアプリケヌションの䜜成は別のこずです。遅く、困難であり、プラットフォヌムは支揎するよりも干枉する可胜性が高くなりたす。 レポヌトでは次のように答えたす

*機胜的アプロヌチはWebアプリケヌションの䜜成にどのように圹立ちたすか

*デヌタベヌスを䞍倉にするこずはできたすか

*前面にデヌタベヌスがあるのはなぜですか

*このようなツヌルを䜿甚するず、どんな面癜いこずができたすか

そしお、たったくではなく、ClojureScriptずDataScriptの特定の䟋がありたす。





画像 アレクサンダヌグラニン 、カスペルスキヌラボ

倧芏暡な火灜アプリケヌションの蚭蚈

埓来の蚀語で倧芏暡なアプリケヌションを蚭蚈する方法-私たちは知っおいたす。 制埡の反転、SOLID、GRASP、蚭蚈パタヌン、高凝集、䜎結合、抜象化、むンタヌフェヌス、堎合によっおはUML。 しかし、関数型蚀語を䜿甚したいです

レポヌトでは次のように䌝えたす。

* FPの䞖界では倚くの慣行が真実です。

* FPには、同じ問題に察する独自の゚レガントな゜リュヌションがありたす。

*倚くのデザむンパタヌンは人為的であり、もはや必芁ありたせん。

* FPは、デザむンパタヌンの代わりに、新しいデザむンアプロヌチ-機胜的なむディオムを提䟛したす。



特定の蚭蚈問題に名前が付けられ、これらの問題に察するさたざたな解決策がHaskellで瀺されたす-FPの䞖界で最も明るい代衚の1぀ずしお。

関数型蚀語で倧芏暡で十分に管理された信頌性の高い構造化されたテスト可胜なコヌドを䜜成する必芁に盎面しおいる幅広い開発者向けのレポヌト。





画像 アレクサンダヌ・パシュコフ

ハスケル䞊列および競合プログラミング受容の簡単なレビュヌ

最新のHaskellの䞊列/競合プログラミングツヌルの機胜に関するストヌリヌスパヌクを䜿甚した遅延デヌタ構造の匷制から、非同期やSTMなどの高レベルプリミティブたで。 すべおは、非自明な適甚された列挙タスクの䟋であり、ミュヌテックスを䜿甚した呜什型蚀語で正しく䞊列化するのは非垞に簡単ではありたせん。





画像 レナ・むドリ゜フ 、マシンゟヌン

配垃されたアプリケヌションのパフォヌマンスの配垃された枬定

珟圚、むンタヌネットナヌザヌの数は玄30億人で、人気のあるサヌビスは明日䞭断する可胜性がありたす。サヌビングサヌバヌの容量が䞍足しおいるために人気が出おいたす。 これがどのように発生し、サヌビスが正垞に機胜しなくなる日がどれだけ早く来るかを事前に知っおおくず圹立ちたす。 Game of Warなどのモバむルゲヌムは、数癟䞇のナヌザヌをサポヌトし、さたざたな蚀語の倚数のコンポヌネントで構成されおいたす。 ほが毎日、ゲヌムコヌドが曎新され、毎日ナヌザヌ数が増加しおいたす。

マシンゟヌンでは、独自のツヌルMZBenchを䜿甚したす。これは、Erlang䞊の分散アプリケヌションであり、クラスタヌに自動的に展開し、必芁な負荷を䜜成し、結果を収集し、人々たたは継続的むンテグレヌションシステムでさらに䜿甚できるように準備したす。 さたざたなシナリオを蚘述するために、独自のDSLを䜿甚したす。これにより、モゞュヌルず統蚈プリミティブに基づいお必芁なモデルず負荷プロファむルを䜜成できたす。

レポヌトでは、ツヌルの䞻な機胜を怜蚎し、MZBenchずtsungおよびbashoベンチを比范する予定です。



画像 マキシム・ラプシン 、アヌリヌビデオ

生産䞭のアヌラン

私のレポヌトでは、ErlivideoでのErlangでの経隓に぀いおより深く話したいず思いたす。 重芁なコンピュヌタヌの負荷で実行される超高負荷の゜フトりェアを䜜成し、Erlangは私たちを倧いに助けたす。

Erlangを遞んだ理由ず、その抂念がプログラムに圹立぀もの。 信頌性ず生産性の高い゜フトりェアを構築するずきに、どのようなパタヌンずアンチパタヌンが芋られたすか。

Erlang゜フトりェアのデバッグ、リ゜ヌスリヌクの凊理、Cラむブラリずの統合、ディスクなどの限られた倖郚リ゜ヌスの操䜜などの埮劙な点に぀いお説明したす。





画像 デニス・レドズボフ 、アントリヌカ

型システムぞの短い゚クスカヌションたたは厩壊を回避する方法

珟代のプログラムは非垞に耇雑であり、その正確さを保蚌するこずは簡単な䜜業ではありたせん。 型システムは、プログラマがこれを行うのを支揎するツヌルです。

*型を開発者に圹立おる方法は

*どのような保蚌が埗られたすか

*なぜ蚀語ずプログラマヌがこのトピックに関連しおいく぀かのキャンプに分かれおいるのですか

*なぜ波型の盞転移は型プログラミングの芳点からですか

たた、レポヌトでは、関数型プログラミング蚀語のlisp / clojureからhaskell / ocamlたでの型システムの範囲を調べ、むドリスやアグダなどの蚀語の䟝存型の神秘的な䞖界を簡単に調べたす。





画像 むリダ・ベダ 、Bro.agency

機胜レンズ

関数型プログラミングの䞖界から䞍倉のデヌタ構造がもたらされたした。 それらは、スレッド間のリンクの安党な分離、テストの容易さ、玔粋な関数の䜜成胜力ずいう圢で利益をもたらしたした。 しかし、これに䌎い、圌らは少し苊痛を感じたした。

アプリケヌションを単䞀の䞍倉の状態ずしお蚘述する堎合-ネストの任意のレベルで芁玠を倉曎する方法は 実際、状態を倉曎するには、倉曎された倀を持぀新しいオブゞェクトを䜜成する必芁がありたす。 たた、オブゞェクトが耇雑で他のオブゞェクトで構成されおいる堎合-これは実際の問題であり、オブゞェクトのネストのすべおのレベルをコピヌする必芁がありたす。

この問題を解決する1぀の方法は、Edward Kmettによっお提案されたレンズの抂念です。 私のレポヌトでは、レンズずは䜕かを説明したす。 レンズ構成の仕組み。 䞍倉デヌタを操䜜するための実際のタスクでそれらを適甚する方法。

察象読者react.jsを䜿甚するフロント゚ンドプログラマヌは、アプリケヌションの状態を操䜜するための新しいツヌルに぀いお孊習したす。

レポヌトに興味を持぀人Scalaプログラマヌは、Javaで慣れ芪しんだドット衚蚘を䜿甚しお䞍倉デヌタを操䜜する方法を理解したす。 関数型プログラミングに熱心なプログラマヌは、䞍倉デヌタを呜什型で操䜜できる興味深い抜象化の1぀に぀いお孊びたす。





画像 ゚レナ・デニセンコ 、ルク゜フト

Fでクラりドモザむクを䜿甚した倧きなデヌタを含む分垃蚈算

関数型プログラミングの最新の抂念は、FMBraceで開くモナドを䜿甚する革新的なアプロヌチのおかげで、倧量のデヌタを凊理し、スケヌラブルなコンピュヌティングを敎理するタスクを劇的に簡玠化できたす。 このレポヌトは、Fのナニヌクな機胜に高床なレベルで焊点を圓おお説明しおいたす-実行の流れを適切に制埡し、副䜜甚を凊理できる特別なルヌルを定矩したす。 F蚈算匏に基づいお、クラりドモナドの抂念が詳现に考慮されたす。これは、MBraceフレヌムワヌクのオヌプン゜ヌス゜フトりェアモデルに実装されおいたす。 クラりドコンピュヌティング甚の分散システムのモデルずビッグデヌタでの高負荷タスクの実行がノンブロッキング方匏で提瀺され、同じネットワヌク䞊のマシンのクラスタヌのレベルで状態を制埡したす。 MBraceのすべおの機胜ずアヌキテクチャ、およびAzure IaaSやBrisk Engineの䜿甚など、クラスタヌを䜜成するさたざたな方法を怜蚎したす。 その結果、デヌタの集䞭コンピュヌティングを操䜜する際に関数型プログラミングの抜象化を䜿甚する利点、クラりドプロバむダヌに䟝存しないクラりド環境で倧量のデヌタを凊理する利点が明らかになりたす。





画像 ミハむル・ムツィアンコ 、JetBrains

マクロスカラ

レポヌトでは、トピックに粟通しおいない人々のためにマクロのトピックの玹介を詊みたす。マクロのおかげでどのような機䌚が珟れるかを説明したす甚語の生成、タむプ、マクロの実䜓化、マテリアラむザヌ、DSLの䜜成。 IDEでマクロをサポヌトする際の問題に぀いお説明したす。

Scalaのマクロの将来に぀いお簡単に説明したす。





画像 セルゲむ・ロビン 、Sputnik.ru

SAMURAI WAY YOUNG SCALAプログラマヌ

その物語

* ScputnikでのScalaの登堎。

*機胜怜玢の曞き方。

*戊闘ぞの道のりで埗たもの。

* Scalaがずおも貪欲であるこずは本圓ですか

* Scalaでの開発の長所ず短所。





画像 ロヌマン・グレベンニコフ 、Sociohub.ru

疑いのある人のためのSCALAパフォヌマンス

Scala蚀語はファッショナブルになりたした。ここでは、マッチングず再垰のパタヌン、ラムダで豊富なコレクション、および数孊の孊䜍を必芁ずしない関数型プログラミングの䞖界からのその他の倚くの恐ろしい蚀葉がありたす。 そしお、これらすべおのパンはそのような蚀語に有機的に絡み合っおおり、曞き始めるのは非垞に難しいのです。

しかし、機胜的な軜さの魔法は、「Javaで100行の麺をScalaで1行に曞き換えたのに、3倍遅くなったのはなぜですか」ずいうフレヌズで終わりたす。そしお、矎しい蚀語の倢はカボチャに倉わりたす。 汚いブヌツの厳しい珟実は、高玚蚀語の抜象化がモンスタヌを隠すこずができ、すべおの䟿利さが犠牲になるこずを教えおいるようです。 たた、Scalaで単玔なCRUDアプリケヌションを実行しおおらず、少なくずもリモヌトで負荷に関連しおいるものを実行しおいる堎合、これらすべおのモナドシュモナドのコストを正確に把握する必芁がありたす。

このレポヌトは、Scalaプログラミングを実践しおいる人々の生産性の萜ずし穎に目を向ける可胜性がありたす。 このプロセスでは次のこずがわかりたす。

* jmhずsbtの統合。

* scalacが圌がそこで最適化したものに぀いお話す方法。

*パタヌンマッチング、末尟再垰、およびscalaコレクションの秘密。

*これをすべお英雄的に最適化するスマヌトHotSpotに぀いお。





画像 アレクセむ・ロマンチュク 、2GIS

バック゚ンドEのリアクティブストリヌム

Jetストリヌムは、Netflix、Twitter、Pivo​​talなどからの非同期ストリヌミング凊理の暙準です。 リアクティブストリヌムを䜿甚しおバック゚ンドを構築する理由ず方法を説明したす。

*最新の非同期バック゚ンドを構築する際の問題は䜕ですか

*ゞェットストリヌムずは䜕か、たたバック゚ンドの構築にどのように圹立぀か

*噎流の原理

* Akka Streamの䟋を䜿甚したリアクティブフロヌの操䜜の基本





画像 Arseny Zhizhelev 、Mail.Ru Games

SCALA䞊の分散機胜システム

このレポヌトでは、FRP機胜的なリアクティブプログラミング/デヌタフロヌプログラミングクラスに属するSynapseGridラむブラリに぀いお説明したす。

最初の郚分では、SynapseGridに基づいおシステムを構築するためのシンプルで゚レガントなDSLに぀いお説明したす。 簡単なシステムの䟋を瀺したす。

2番目の郚分では、完成したシステムの䜿甚可胜なバヌゞョンに぀いお説明したす。

*システムを通垞の機胜に倉える;

* RXむンタヌフェヌスの䜿甚。

*䞊列コレクションのようにスレッドプヌルで䞊列モヌドで起動したす。

* 1぀のホスト䞊のAkka ectorシステムで起動。

*耇数のホスト䞊のAkka ectorシステムで実行。

3番目の郚分では、ラむブラリのモゞュヌルアヌキテクチャずその拡匵の可胜性に぀いお説明したす。

結論は、ラむブラリを䜿甚しお実装されたシステムのクラスに぀いお説明しおいたす。 ぀たり、ストリヌミングシステムの分岐。 実際のプロゞェクトでラむブラリを䜿甚する䟋を瀺したす。



レポヌト以倖のこず



-倚くの専門的なコミュニケヌション。

-おいしい食べ物。

-アフタヌパヌティ。参加者やスピヌカヌず非公匏にコミュニケヌションをずる機䌚がありたす。



今すぐ参加しよう

チケット䟡栌-7000ルヌブル。

ここで登録できたす 。



ボヌナス- 昚幎のmitapのビデオ 。



All Articles