銀座Rails#32を開催しました
去る2021/4/23(金)、銀座Rails#32を開催しました。
当日の様子は、togetterのまとめを御覧ください。
スポンサーセッション リンクアンドモチベーションさま
今回も趣味はラズパイ遊びの、今野さんがご登壇。 まずは先日実施された、Developer eXperience Dayのお話から。
銀座Railsのスポンサーセッションにも過去ご登壇頂いた柴戸さんと河野さんが、DXに関するお話をされたそうです。
リンクアンドモチベーション社ではDXの実現において、2つのDX、デジタル・トランスフォーメーションとデベロッパー・エクスペリエンスが揃ってこそと考えている、との事。
そして負債の山からDXの改善を求めて行動した結果の振り返りの会を、4/27(火)に実施。気軽な気持ちで参加のしてもらい、ノウハウ交換したいとの事でした。
森雅智(@morimorihoge)さん(BPS株式会社) 「出張Railsウォッチ in 銀座Rails 〜Railsのmimemagic騒動を総括する〜」
毎度おなじみ出張Railsウォッチ。今回は先日起こったmimemagicの話の振り返りでした。 各地で「何もしていないのに動かなくなった」 => 皆さんの手元のソースコードを変更していないにも関わらず動かなくなった、という現象を引き落としたその原因を、0.3.5から削除(yanked)された時点から時系列で解説。
更に原因となったライセンス問題、DMCA takeダウンによる配信停止がされる可能性、という考察から、yankは仕方がないのではという見解を述べられ、Rails側でどのような対応がされたのか、その理由について解説され、最後に教訓をいくつか抽出されていました。
何をすべきかについては、@mametterさんのhackmdにまとめられているので、そちらを参照すると良いとのことです。
https://hackmd.io/@mametter/mimemagic-info-ja
@daikiii5555さん「Upgrow: Railsアプリの保守性を高めるためのShopifyのアプローチ」
最近の趣味は車輪の再発明、自作OSや自作dockerを楽しまれているという三浦さん。
先日Shopify社が発表したアーキテクチャ「Upgrow」に関するお話でした。 (2021/04/23現在、Upgrowは非公開になっています)
Upgrowが解决しようとした問題をまず明らかにし、Rails Wayとの違いを図解。
つぎにどのように解決しようとしたのかを解説し、Upgrowの各コンポーネントについて解説されました。
更に同じ課題に対し、既存のアプローチとはどう違うのか、またCleanArchitectureとの比較など、Upgrowについて多角的に考察が述べられ、 最後に我々が同様の課題に対しどう立ち向かうのかについて纏められていました。
スポンサーセッション DeNAさま
今回もDeNA様より、人西さんがご登壇。
DeNAはRailsで開発したサービスも運営しており、その1つであるライブ配信サービス「Pococha」は、220万DL突破、MAU前年比3倍と急成長中。 しかしRailsで新規事業をやっていく中での課題に直面し、アーキテクチャの再検討やパフォーマンスの向上のための現場ISUCONなどが実施されているとのこと。
そんな成長中のサービス開発の人材を募集しており、
大歓迎との事でした。
ゲストスピーカー 遠藤 侑介(@mametter)さん「emruby: ブラウザで動くRuby」
クックパッドで働くフルタイムRubyコミッタ、遠藤さん。先日リリースされたRuby3.0では、添付されているTypeProfの制作に取り組まれています。
今回は「emruby: ブラウザで動くRuby」と題して、ブラウザでRubyをWASMとして動かす話をしていただきました。
まずは実際に以下のURLから、ブラウザでRubyが動くデモを実施。
開発した目的を「ブラウザでRubyが動くのは楽しい」、「WASMが流行る時期になった時、Rubyも動くようになっていたらいい」と述べられ、その後WASM、Rubyをブラウザで動かす研究の一覧、そしてその中のEmscriptenに関する解説を実施。
更にRubyのbuild方法からirbを動かすまでにやった事について解説され、実際にirbをブラウザで動くことを確認。
https://mame.github.io/emruby/irb/
最後に今後の予定を述べられ、興味ある方、お手伝い希望の方はお声掛け下さいとの事でした。
www.slideshare.net
次回、銀座Rails#33について
次回銀座Rails#33は2021/05/21(金)、オンラインでの開催となります。
ゲストスピーカーにはUchio Kondo(@udzura)さんをお迎えし、「それ、mrubyで - 「Railsな人」のための初めての低レイヤ」と題して、mrubyのお話をして頂きます。
現在、参加者募集中です。 ginza-rails.connpass.com
Spring徹底入門14章チュートリアルをやった
SpringBootをKotlinで使う用事が出来たのですが、SpringもSpringBootもKotlinも未だ使ったことが無かったため、各個撃破すべく各所でオススメされていた「Spring徹底入門」を読みました。
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者:株式会社NTTデータ
- 発売日: 2016/07/20
- メディア: Kindle版
「ざっと前半を斜め読みしてから、14章のチュートリアルで写経をし、その中でそれまでの章を再度見直す」という方針で進めたのですが、発売されてからだいぶ時間が経っているため、そのままだと動かない場所も。
指示通りではなく自分の都合で違うやり方をした部分もありますが、一応は完走できたため、詰まったところについてメモを書き残しておきます。
(ただの読み落としで詰まっただけのところもあるかと思う。その点はご容赦のほどを...)
前提
package名
SpringBootのinitializerで、app名をそのままpackage名にできなかったが、 とりあえずcom.app_name とすればとりあえずはよくて、 その後作ったクラスとかも package com.app_name.*** としておいたが、不具合は特に起きなかった。
databaseに接続ができなかった件
*************************** APPLICATION FAILED TO START *************************** Description: Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource: Property: driver-class-name Value: org.postgresql.Driver Origin: "driverClassName" from property source "source" Reason: Failed to load driver class org.postgresql.Driver in either of HikariConfig class loader or Thread context classloader Action: Update your application's configuration
以下のように対処
- build.gradleのdependenciesに以下を追加
runtimeOnly 'org.postgresql:postgresql'
- application.propertiesに以下を追加
spring.datasource.driver-class-name=org.postgresql.Driver
resources/schema.sqlを置いておいても勝手に読みに来てくれない件
以下をapplication.propertiesに書いて解决
spring.datasource.initialization-mode=always
alwaysで良いかどうかはその都度判断すること
TIMESTAMP型に関するエラー
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [reserved_date] in table [reservable_room]; found [date (Types#DATE)], but expecting [timestamp (Types#TIMESTAMP)]
JPA2.2からは、Tutorialで自力でConverter作ってた部分は不要。 LocalDate、LocalTime、LocalDateTimeのConverterをTutorialでは作ってたけど、かえって悪さをする。 converter消したら解决。
findOne(id)がない
SpringBoot2以降(1.5.15より後?)だと、JPAにfindOne(id)がない。
findById(id)なら使える。 ただし返却されるのがOptional型なので、
Hoge.findById(id).orElse(null)
などとすれば一旦は動く。
ただしTutorialに限った話。他の場面では適切なものを選択すること
javax.validation
javax.validationがそのままだと使えなかったので、build.gradleに以下を足した
implementation 'javax.validation:validation-api:2.0.1.Final' runtimeOnly 'org.glassfish:javax.el:3.0.1-b11'
WebSecurityConfigの置き場所
com.app_nameの直下に置く
参考情報
参考になった: qiita.com
銀座Rails#31を開催しました
去る2021/3/19(金)、銀座Rails#31を開催しました。
当日の様子は、togetterのまとめを御覧ください。
スポンサーセッション リンクアンドモチベーションさま
登壇前日に、車と携帯が壊れてしまった河野さん。
今回のお話は、デッドコードのお話。見直すきっかけとなったのは、Dx Criteriaの採用であったとの事。 ソースコードの明確さという項目に沿い、2万行以上を削除したそうです。
関連したお話を、Developer eXperienceDayでされるとの事でした。 https://dxd2021.cto-a.org/
森雅智(@morimorihoge)さん(BPS株式会社)「出張Railsウォッチ in 銀座Rails」
今回はネットワーク環境が悪いところにいらっしゃるということで、動画でのご登壇となった森さん。
10年ほどで50以上のプロジェクトにてRailsで受託開発を続けてきたご経験から、 プロジェクトあるあるを共有頂きました。
大きく「現場が必要に駆られて作ったよプロジェクト」「一度作ったけれどその後放置されて老朽化したプロジェクト」「短期間でサクッと作ろうプロジェクト」「既存システムをRailsで作り直そうプロジェクト」に分け、それらについての特徴と注意点についてお話頂きました。
@orekyuuさん「Rails製ECサイトの決済速度を上げろ!〜決済処理チューニングの記録〜」
銀座Rails初参戦のorekyuuさん。仕事でRubyを使っているが、本当はJavaが好きだとのこと... 今回はECサイトであるBOOTHにて、決済スパイク時に発生するアラートにどう対応するかについてお話頂きました。
決済時に数秒かかる悲観的ロックが障害の原因だったそうで、対策として在庫減算と決済処理を別トランザクションに分け、在庫減算のみにロックをかけるようにし、更にその状態での障害に対応するため、ActiveRecord::Callbackを消去し小さい集約にしたとのこと。
結果として半年、悲観的ロックで詰まることが無くなったものの、今度は次のボトルネックが顕在化したそうです。
「俺達の戦いはこれからだ」
スポンサーセッション DeNAさまより 人西 聖樹(@sairoutine)さん「急成長する Pococha が抱える技術的課題」
前回に引き続き、DeNAさまより人西さんがご登壇。 perlとかgolangの会社だと思われがちですが、Railsもやってる!ということで、今回もご支援頂いております。
まずは最初に、ベイスターズのビールが50名に当たるキャンペーンから始まりました。
新規事業Pocochaで発生した課題として、大規模で破綻していくコード設計があり、RailsWayだけでは解决できず、 FatModel -> FatService -> グローバル実装でカオス...と続き、アーキテクチャ全体の見直しが必要との事。 他にも急増するサーバの負荷の問題もあり、業務でISUCONを楽しめる....!
求人ページはこちらから career.dena.jp
ゲストスピーカー Autify社CTO / バックエンドエンジニア 松浦 隼人(@dblmkt)さん 「スタートアップにおける言語とフレームワークの選択」
オーティファイ社でCTOをされている松浦さん。元々インフラを中心にご活躍され、Railsもいじり、趣味は翻訳とのこと。SQLパフォーマンス詳解、入門監視などを翻訳していらっしゃいます。
現在提供しているのは、E2Eテストがノーコードで簡単に作成できるAutifyですが、その前のProductではRailsでのバックエンド+ReactでのSPAフロントエンドという分業体制を取っていたとのこと。
その後Autifyの開発が進むにつれ、初期プロダクトではリッチなUIが必要でないこと、管理画面の方が機能が多いこと、フロントエンド-バックエンド間のコミュニケーションミスが多発したことなどから、React部分を捨ててRailsのみに戻すことを決断したそうです。
スタートアップの最初期はとにかく価値を最速で届けるのが最重要と述べられ、考えることが一番少ない言語・フレームワーク・製品としてのRailsの利点を述べられていました。
次回、銀座Rails#32について
次回銀座Rails#32は2021/04/23(金)、オンラインでの開催となります。
https://twitter.com/mametter ゲストスピーカーにはAutify社CTO / バックエンドエンジニアの松浦 隼人(@dblmkt)さんをお招きし、「スタートアップにおける言語とフレームワークの選択」と題して、スタートアップ観点での技術選択の考え方をお話いただきます。
ゲストスピーカーにはRubyコミッター 遠藤 侑介(@mametter)さん「emruby: ブラウザで動くRuby」をお話頂きます。
現在、参加者募集中です。 ginza-rails.connpass.com
ワーケーション
弊社、元々リモートで仕事をしているものの、ここ数年は夫婦二人共がプログラマとして本格稼働をしており、
- 片方がWebミーティングしたい時にどうするの問題
- リビングを仕事場にしているために、平日休日もずーっと同じ環境にいてなんか疲れる問題
- 仕事部屋(旧リビング)の横に居間(狭い)があって、ついリビング見ると仕事気分になったり仕事しちゃったりするんですよね
- 応接室が消滅した(以前はバイトさんも来ていたし、面接とかどうするよ)問題
などがありました。
そんな中、コロナ禍もあって「ワーケーション」という言葉が話題に。
そこで意を決し、今月初旬に移動式の仕事場としてキャンピングカーを導入しました。
自分の師匠的な人は、庭にプレハブを建てて仕事場にしたりしてましたが、我が家はそこまで庭は広くなく、また増築も難しい。
だったら移動式のものでもいいよね、気分を変えて仕事もできるし、といった感じです。
これはちょっと場所を変えて、企画会議をしているところ。
現在の雑感です。
- ちょっと自然なところに朝出かけてそこで仕事を開始、疲れた時には外に出てリフレッシュ、はなかなか有効
- 家の駐車場に停めていれば、なんとかWifiが入るので、Webミーティングは大丈夫
- 居住部にエアコン付いてるけど、夏は大丈夫なのかなー
- 自然とWifiは両立しない。スマホのギガをどこまで消費するんだろう
- コードを書く以外の仕事を一人でやりたい時に引き篭もるのには、思ったよりも有効
今後もキャンピングカーでワーケーションするにあたり、気づいた事などあったらメモをしていく予定です。
銀座Rails#30を開催しました
去る2021/2/29(金)、銀座Rails#30を開催しました。
当日の様子は、togetterのまとめを御覧ください。
スポンサーセッション リンクアンドモチベーションさま
今回はラズパイ遊びがご趣味、エンジニアリングマネージャの今野さんがご登壇。 「コンサルの組織であると目に映りがちな弊社が、技術的には何をしているのか」をお話されました。
荒廃していたコード、疲弊するエンジニア。売上は上がっていくが組織にヒビが入っていく。そんな中DXへの取り組みとしてLean DevOpsの科学とDX Criteriaを参考に、客観的指標を作り、それにそってテストカバレッジ、削除コード量、テスト実行時間などを改善していったとのことです。
また「負債との上手な付き合い方」について勉強会を3/11(木)に開催予定で、参加者を募集されていました。
採用ページはこちらから。
森雅智(@morimorihoge)さん(BPS株式会社)「出張Railsウォッチ in 銀座Rails」
今回の森さんのお話は、「Railsインフラ環境Overview」。
まずWebサーバの振り返りから。懐かしWebrickから、Unicorn、Puma、Passenger、更にRainbowsなどについて、スレッド / プロセスの利用方式など仕様について触れながら説明していきます。
次にRackアプリケーション・サーバを振り返り、更にDeploy先による違いにも触れ、最後に「新しく自分がRailsでサービスを立てるとしたら、何が良いか」を考えることをオススメされていました。
rince(@kazumax1218)さん「Railsで海外9ヵ国にサービス展開している話」
旅とキャンプが好きなrinceさん。 Railsのi18nの基本をお伝え、海外展開の開発面でのハードルが高くないことを知ってもらう、少人数でもできる、結果としてもっと海外展開するサービス増える!事を目標にお話されました。
実際に提供されているサービス「mybest」の基本情報を共有の後、複数DB運用やコード内に国ごとの分岐を入れないようにするための工夫、インフラにおいてはFargateの利用法やCognitoでのアカウント管理、ChatOpsでの一括デプロイなど、様々な具体的方策を共有頂きました。
結果として、大きな問題もなく、9カ国への海外展開が実現できているとの事です。
小林ノエル(@free_world21)さん「Fintechエンジニアが読み解く東証障害報告書」
証券会社のシステムを0から経験を持つ小林ノエルさん。大学時代の指導教員(?)であった笹田さんが見守る中、東証の障害報告書について解説頂きました。
まず金融業の基礎知識と小林さんのベースとされている分野について触れ、どの視点からの話になるのか前提を明らかにした上で、東証の規模やシステムの基本構成について解説。
そして当日発生したことについて時系列で説明し、発生した事象、東証で行われたであろう判断について解説しながら、当日に取引全面停止になるまでの流れを明らかに。
更にトラブルが起こったNASの詳細について述べ、最後に学ぶべき事として、トラブル発生に備えた準備やリソースの配分などを列挙されていました。
スポンサーセッション DeNAさまより 人西 聖樹(@sairoutine)さん「急成長する Pococha が抱える技術的課題」
perlの会社と思われがちですが、Railsもやっています!とのことでご支援頂ける事となったDeNAさまより、人西さんにご登壇頂きました。
今回はRailsで開発しているサービス「Pococha」についてのお話。 MAU前年比3倍と伸びているライブ配信サービスですが、大規模開発で破綻していくコード設計、RailsWayだけで解决できなくなる問題、急増するサーバ負荷の問題など、様々な問題と原因について触れ、一緒に取り組むエンジニアを募集されていました。
求人ページはこちら career.dena.jp
また、2021/3/3に開催されたDeNA TechCon 2021について、セッションのご紹介をされていました。
ゲストスピーカー 笹田 耕一(@_ko1)さん「Ruby 3.0 の Ractor について」
今回はRubyのコアコミッタである笹田さんをお招きし、Ruby3.0から導入されるRactorについてお話頂きました。
http://www.atdot.net/~ko1/activities/2021_ginzarails.pdfwww.atdot.net
まずは並行/並列プログラミングの説明と難しさについて説明。そしてRactorについて、その難しさを解消するために、どのような言語機能の制限によって安全性を確保しているのかに触れ、次に設計思想として「スレッドと違い、普通に使った場合は共有が制限されてスレッド安全が確保される」と解説。
そして、現段階で使える場面、使えない場面について列挙。最後に「Ractorは結構Rubyのプログラミングスタイルを変更する」と述べ、Ractorで遊んでみて欲しい、何かあったらruby-jp Slackの #concurrency チャンネルでお気軽にお尋ねを、と呼びかけられていました。
次回、銀座Rails#31について
次回銀座Rails#31は2021/03/19(金)、オンラインでの開催となります。
ゲストスピーカーにはAutify社CTO / バックエンドエンジニアの松浦 隼人(@dblmkt)さんをお招きし、「スタートアップにおける言語とフレームワークの選択」と題して、スタートアップ観点での技術選択の考え方をお話いただきます。
現在、参加者募集中です。 ginza-rails.connpass.com
銀座Rails#29を開催しました
去る2021/1/29(金)、銀座Rails#29を開催しました。
当日の様子は、togetterのまとめを御覧ください。
スポンサーセッション リンクアンドモチベーションさま
今回は、SREチームのテックリードをされている河野さんがご登壇。社内でのDXの取り組みについてのお話でした。 1年前は緊急課題の対応で精一杯だったところに、改善を行うために開発組織に「ものさし」を導入。 書籍「LeanとDevOpsの科学」、DX Criteriaなどを参考に指標を決め、様々なことを改善しているとのこと。 標準レベルには達したものの、まだまだ改善していきたいとのことです。
現在も人材募集中との事で、まずはカジュアルに雑談をしましょうとの事でした。
採用ページはこちらから www.wantedly.com
森雅智(@morimorihoge)さん(BPS株式会社)「出張Railsウォッチ in 銀座Rails」
今回の森さんのお話は、主にAWSにおけるServerless環境との相性の悪さ、難しさについてでした。
Serverless環境では、Requestが発生されたタイミングで関数が呼び出されますが、pumaやunicornと共に運用するRailsのような、サーバレスではないアプリケーションは、初回起動時に時間がかかることをまず説明。
その相性の悪さに対して工夫している例として、Railsライクにコードが書け、endpoint毎に分解でき、AWS Lambda + API Gatewayとして登録できる「Ruby on Jets」、LambdaからRackを呼び出して、Railsそのものを動かす「Lamby」について、概要の説明と使用感を共有していただきました。
Yasuo Honda(@yahonda)さん 「Ruby 3.0 とRails 6.1の"サポート"マトリクスについて」
RailsコントリビュータであるHondaさん。今回はRubyとRailsの互いの対応状況のマトリクスについてお話頂きました。
まずはRailsとRubyのメンテナンスポリシーを説明。それぞれ独立しており、どのバージョンを、どのポリシーで、どの期間メンテナンスするのかについて決められているとのこと。
その上でRailsが必要とするRubyバージョンには上限を設けないこと、何を対象にCIを実施しているかなどについて解説。
更に、RailsがRuby 3.0にどのように対応していったのか、実際のPRやチケットを例示しながらご説明頂きました。
安川要平(@yasulab)さん 「RailsチュートリアルとRailsガイドのデータで見る、Ruby学習者の動向」
RailsチュートリアルやRailsガイドを運営している安川さん。今回は運営上得た統計データ(Google Analytics など)を元に、学習者の動向をご説明頂きました。
まずはミスリーディングが無いように、データの性質について説明した上で、グラフでデータを図示し、補足を加えながら、「観測できる範囲では、学ぶ人は増えている」「RubyやRailsで検索する人は、増えている」という結論を出されていました。
またRailsTutorialを完走された方がその後どうされたかについて、開発者となった方や新規事業を始めた方などの事例を紹介されていました。
スポンサーセッション forkwellさま
今回もおなじみ重本さんによる動画、内容は「自由なエンジニア 不自由なエンジニア」。 自由なエンジニアは、社内評価と市場評価が釣り合っているとのこと。勉強会やコミュニティへの出席がその解決方法の1つであるものの、コロナ禍によってなかなか参加しにくくなっています。 そこで代わりとなるのがスカウト機能。市場評価を受け取ることができますが、スパムが多いのは悩みどころ。 forkwellさまはインタビューや調査を重ね、一括送信によるスパムが無いなど、受け取り手に優しいForkwell Scoutを開発したとのことです。
ゲストスピーカー やさいち(@_yasaichi)さん「Active Recordから考える次世代のRuby on Railsの方向性」
今回のゲストスピーカーは、Perfect Rails著者の一人であり、PIXTA社でCTOをされているやさいちさんをお招きしました。
2019年のRailsDMで発表された「Ruby on Railsの正体と向き合い方」。その後フロントエンド環境が大きく変化し、そこで生まれたのは「Railsが置き換えられるとしたら」という問題意識だったとのこと。
まずはActiveRecordの正体と題して、PoEAAなどの書籍を参考にしながら、ActiveRecordのアーキテクチャについて分析。その特徴と利点を述べた上で、更に改善の余地がある部分について説明。
次に次世代のRailsの方向性と題して、Railsに変わるフレームワークの次世代の姿を、フロントエンドからのアプローチ / バックエンドからのアプローチの2つのアプローチに分けて考察。
それぞれの現状から課題、その解決となるかどうかの成否の条件についてお話頂きました。
更に懇親会では、バックエンドからのアプローチにおけるDHH氏の動きなどについてもお話され、参加者と共に大変盛り上がりました。
次回、銀座Rails#30について
次回銀座Rails#30は2021/02/26(金)、オンラインでの開催となります。
ゲストスピーカーには笹田 耕一さんをお招きし、『Ruby 3.0 の Ractor について』をお話頂く予定です。
現在、参加者/発表者共に募集中です。 ginza-rails.connpass.com
銀座Rails#28を開催しました
去る2020/12/18(金)、銀座Rails#28を開催しました。
当日の様子は、togetterのまとめを御覧ください。
スポンサーセッション リンクアンドモチベーションさま
第一回からスポンサーをして下さっているリンクアンドモチベーションさまからは、以前公募枠からもご登壇頂いた、テックリード&EMの江上さんがご登壇。
良い会社の定義を変える、事業面だけでなく会社と社員の相思相愛度(エンゲージメント)が評価される社会を...という思いでプロダクトを作っているとのことで、展開している4つのサービスを紹介。
モチベーションクラウドシリーズの売上も昨年比140.3%と順調で、Quiitaのアドベントカレンダーランキングも2連覇中とのこと。 3連覇を目指して記事を鋭意作成中とのことでした。
採用ページはこちらから www.wantedly.com
森雅智(@morimorihoge)さん(BPS株式会社)「出張Railsウォッチ in 銀座Rails」
継続的に話題をご提供下さっている森さん。第10回からほぼ毎回ご参加頂いております。参加のきっかけのお話を枕に、今回は参加層と発表内容の層の分析のお話でした。
おかげさまでほぼ毎月開催できている銀座Railsですが、その全回を対象に、参加者層と発表内容の想定ターゲット層を分析。そして銀座Railsが中級者の壁を超える一助になっていると考察。
また各回を内容の種類に分けて分類し、どんなお話が過去あったのかについてもPickupして頂きました。
伊藤遼さん 「モチベーションクラウドを支える非同期処理の変遷 」
新卒2年目、エンジニア歴1年めの伊藤さん。
パフォーマンス改善チームに配属されたとのことで、企業規模が大きくなっていくにつれ鳴り響く響くアラートに悩まされたとの事。 単一サーバでの大量のcronを、スケーラブルに、並列化した実例をお話頂きました。
active elastic jobを使うことにしたとのことで、リトライ処理などの苦労はあったものの、 結果として大幅に高速化、過去最大者数の同時サーベイ実施でも問題なしとなったとの事。
また副次的には処理の分割もでき、開発の生産性も上がったとの事でした。
osyoさん「12月25日にリリースされる Ruby 3.0 に備えよう!」
前々回、Ruby3.0のお話をしてくださったosyoさん。
その時点では 、Ruby3.0はpreview1でしたが、そこから大きく変わったとのことで、その点に差し掛かった時には「前回の話は嘘です!忘れてください!」と呼びかけながら、型まわりのサポートやRactor、Scheduler、パターンマッチ、 右代入、エンドレスメソッドなど、変更点について一部はデモを交えながら、変更内容についてお話頂きました。
Ruby3.0のリリース直前に一通りのおさらいが出来、参加者の方も喜ばれていました。
スポンサーセッション forkwellさま / SONY さま
SONY様とタッグを組んで、継続的にエンジニアコミュニティをご支援下さっているforkwell様。 今回は動画でのスポンサーセッションご登壇となりました。
内容はおなじみ「自由なエンジニア 不自由なエンジニア」。 社内評価と市場評価、どっちが大きくても釣り合わない。解決策は勉強会などだが、オフラインになってやりにくい。そこでスカウト。 一括送信スパムがない、簡単につよみが伝わる、自分の評価がわかる、さまざまな企業が待っている。そんなサービスであるとの事です。
ゲストスピーカー まつもとゆきひろ(@yukihiro_matz)さん「Ruby3.0 and beyond」
今日も緊急開発者会議だったというまつもとさん。今回のお話はRWCでのスライドと同じで、Ruby3.0の話も先にご登壇のosyoさんとかぶるということで、 基本的な話を手短にし、質問に多く答えて下さるとのお話から始まりました。
まずRuby3.0については「コンパチブルで高速化されたより良い言語である」と説明され、過去のRubyや他の言語の条件を踏まえた互換性の話、高速化の内容と課題、型の話、そして3.1や4.0に向けた話などをされました。
その後10分程の質疑応答の後、懇親会でも約一時間、質問にお答え頂きました。
次回、銀座Rails#29について
次回銀座Rails#29は2021/01/29(金)、オンラインでの開催となります。
ゲストスピーカーにはやさいちさんをお招きし、『Ruby on Railsの正体と向き合い方【増補改訂版】』をお話頂く予定です。
参加者募集中です。 ginza-rails.connpass.com