イベント
イベントを探す
本日開催のイベント
明日開催のイベント
ランキング
カレンダー
マガジン
マガジンを読む
マガジン
技術ブログ
書籍
動画
動画を見る
グループ
グループを探す
グループを作る
イベントを作成・管理
学生の方はこちら
ログイン
|
新規会員登録
TOP
グループ
フォルシア
ブログ
トップ
ブログ
フォルシア の技術ブログ
全241件
2023/10/13
JotaiのDevtoolsを試してみよう!
はじめに こんにちは、エンジニアの籏野です。 突然ですが、皆さんは Web アプリを作る際にどのような方法で状態管理を行っているでしょうか? 私は長く Redux を使っていましたが、よりシンプルに状態管理を行うことができる Jotai というライブラリを最近使い始めました。 Jotai への入門については様々な記事がありますので割愛して、本記事では Jotai の Devtools を使ってみた紹介をします。 試した内容は以下のリポジトリに置いていますので合わせてご確認ください。 https://github.com/taku-hatano/jotai-devtools-excer
2023/09/29
自社サービスの継続的開発を通じて得た教訓
はじめに こんにちは、エンジニアの田中です。 フォルシアでは SaaS のサービス"webコネクト"を旅行会社様向けに展開しており、 私はその中の"検索機能"の開発・運用に従事しています。 今回、webコネクト検索機能の開発において実践しているブランチ運用とそこから得られた知見について紹介します。 webコネクトについて webコネクト® は、旅行商品販売機能を SaaS 型サービスとして提供するプラットフォームです。 機能として、検索機能・予約機能・割引クーポンや素材登録機能などを備えています。 https://webconnect.forcia.com/ webコネクト検
2023/09/21
PostgreSQL 14で追加されたmultirange型(多重範囲型)を試してみた
エンジニアの吉田です。 今回はPostgreSQL(以降postgresと表記) 14から新しく追加されたmultirange型について紹介し、簡単な性能検証をしようと思います。 multirange型とは 従来よりpostgresではrange型(範囲型)と呼ばれるデータ型が用意されていました。これは文字通り範囲を保持するためのデータ型です。例えば整数であれば以下のように宣言できます。 select int4range(1,10); int4range ----------- [1,10) (1 row) 引数でも指定できますが、デフォルトでは左閉右開区間となります(今回の例
2023/08/22
企業の技術ブログを「みんなで」継続するための戦略
フォルシアの技術広報チームではこれまで、自社エンジニアが社内外へ発信しやすい環境を作るため、試行錯誤を繰り返してきました。 今回はその中でも、「企業の技術ブログを無理なく継続的に続けていくための仕組み」 について、現時点で私たちがベストプラクティスだと感じている方法を記事にしました。 「会社で技術ブログを運営しているが、なかなか執筆してくれる人がいない」「同僚・チームメンバーにももっと発信してほしい」と感じているエンジニアや広報の方にとって、なにかひとつでも参考になれば幸いです。 フォルシアの技術記事 フォルシアでは月2~3本の技術記事を継続して公開しています。 (2023/03より
2023/08/18
FORCIAの監視についてご紹介します
こんにちは。旅行プラットフォーム部エンジニアの高嶋です。 突然ですが、皆さんアプリの品質や安定運用を担保するためには何が必要だと思われますか?テストや定期的なアップデート、保守性の高いコードなど様々ありますが、それらの他にも重要なものがあります。 そう、監視ですね。アプリも人間と同じで定期的な健康診断が必要です。また、FORCIA で提供している Web アプリは toC 展開しているものも多く、異常が生じた場合にはお客様である各企業様の他、多くのエンドユーザーにも影響が出てしまいます。そのため、異常をすぐに検知できる仕組みも非常に重要と言えます。 本記事ではアプリやシステムを陰で見守る
2023/07/14
Rustを中心に世界は回る ~Rustで実装したモジュールを異なる言語から呼び出してみた~
こんにちは、エンジニアの籏野です。 フォルシアでは数年前からRustに関連したイベント(Shinjuku.rs)を開催したり、本の執筆を行ったりとRustに関する活動が行われてきました。 さらにここ最近はRustをよりコアな部分に活用していけないかという議論も活発に行われており、Rustは今後の開発でより重要な役割を担っていくのではないかと感じています。 私自身はこれまでRustにしっかりと触れる機会がなかったのですが、先日プロダクトの検討の一部としてRustを利用できないかという話が出たので、実際にRustを使った処理を実装してみることにしました。 今回の記事ではその際に試したことをま
2023/06/21
オラ、目検したくねっぞ withVisualRegressionTest
はじめに こんにちは、旅行 PF 部エンジニアの奥田です。 コードの変更を変更するとデザインが変わることは避けられません。その都度変更を確認するのは開発の一部ですよね。 影響範囲が広い変更を行った場合、確認すべきページ・箇所が増えてしまい、結果として時間や手間が増大し、それがストレスになります。 特に、大規模な変更を含む開発用ブランチをメインブランチにマージする際に、意図せぬ画面表示変更が混入していないことを確認することは、必須の作業になります。 日々の開発を進める中で、これを繰り返し行うのはなかなかに大変です。 そこで、噂には聞いていた VisualRegressionTest(視
2023/06/13
.envでDocker開発環境をカスタマイズ!
こんにちは、エンジニアの籏野です。 以前、弊社のエンジニアが社内の Dockerfile のベストプラクティスを公開しました。 https://zenn.dev/forcia_tech/articles/20210716_docker_best_practice この頃から更に Docker を用いるための知見が増えてきており、アプリ開発時にはコンテナを利用することが当たり前になってきました。 新規アプリはもちろんのこと、昔からあるアプリに対してもコンテナによる開発環境を用意する動きが多くあります。 コンテナ起動には docker-compose(もしくは docker compose
2023/05/26
Next.js で React Server Components を試してみた
こんにちは、フォルシアエンジニアの籏野です。 先日Next.js 13.4が発表され、App Router が Stable 版になりました。 App Router では最新の React の機能を利用することが可能になっており、その中でも特に注目したいのが React Server Components です。 これまでの Next.js では SSR 時にフェッチしたデータを利用する場合、getServerSidePropsやgetStaticPropsを利用していました。 これらの関数で取得したデータをコンポーネントに props として渡して SSR を行っていましたが、prop
2023/05/19
HTTP Keep-Aliveの挙動をtcpdumpで見てみた
HTTP Keep-Aliveの挙動をtcpdumpで見てみた HTTP Keep-Aliveとは 「HTTP Keep-Alive」という言葉をご存じでしょうか。 Webアプリケーションの開発をした方なら一度は耳にしたことがあると思います。ただ、それが何かを説明するのはなかなか難しいかもしれません。 Wikipediaを見るとHTTPの持続的接続という項目で以下のように記載されています。 HTTPの持続的接続(HTTPのじぞくてきせつぞく)は、同じTCP接続を使い、複数のHTTPリクエスト・レスポンスを送受信するアイデアである。 クライアントは一回のTCP接続で複数のコンテン
2023/04/28
検索が爆速になるデータベース設計を公開します
こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ
2023/04/19
SREチームはじめました
こんにちは。フォルシア株式会社SREチームの小孫です。 フォルシア株式会社ではこの春からSREチームを始動しました。今回は、なぜこのタイミングでSREチームを始めることになったのか、具体的にどういうことをやっていくのかを紹介します。よく耳にする大規模サービスのSREとは違う、弊社の課題をふまえたSREを目指しているので、私たちの話が少しでも参考になれば幸いです。 SREってなんだっけ まず初めに、SREとは何かという話を簡単にします。 SRE(Site Reliability Engineering)とはGoogle社が提唱し、世界中の多くの企業で実践されてきたシステム運用に関する概
2023/03/24
エンジニアが選ぶ、2022年イチオシ技術記事 in FORCIA CUBE
こんにちは。新卒4年目のエンジニアの谷井です。 自社プロダクトの開発をしながら、有志の技術広報チームでリーダーをしています。 先日このFORCIA CUBEにて、2022年入社社員が選ぶ 「『フォルシアを知る』にあたって参考になったブログ」 を紹介させていただきましたが、本日はエンジニアに、 「2022年 なるほど!!と思ったFORCIA技術記事」 についてアンケートをとってみました! 今回は特に推された8つの記事について、アンケートで寄せられたコメントとともに、記事を要約して紹介していきたいと思います。 高速検索のプロたるフォルシアエンジニアたちが、特にどんな技術に興味関心を持っているか、お伝えできればと思います。 なるほど!!と思ったFORCIA CUBE 技術記事たち 8選 AWS Amplify + Next.js + TypeScript で作るCognitoユーザープールのアカウント管理アプリケーション GitLab CIで社内複数プロジェクトをrenovateする 私が営業からエンジニアに転向した訳、できた訳 正規表現専門家がエンジニアになって正規表現がわからなくなった話 PostgreSQLのシステムカタログをのぞいてみよう PostgreSQLの移動集約モードについて GitLab CIでブランチをオートマージ(自動追従)させる FORCIA Meetup #4 PostgreSQL vs Elasticsearch -ファセットカウント編- 【1】AWS Amplify + Next.js + TypeScript で作るCognitoユーザープールのアカウント管理アプリケーション 記事概要 Amazon Cognitoユーザープールのユーザーを管理するアプリケーションを、AmplifyでNext.jsをホスティングして実装した。 Cognito user pools APIを利用して、AWSのコンソール上ではなく、実装したアプリ画面上で管理対象のユーザープールへのユーザーの作成・更新・削除が可能に。 エンジニア社員コメント抜粋 目標アプリや構成図、ソースコードなどをふんだんに交えて丁寧に解説されており、この記事を真似てすぐにアカウント管理アプリケーションが作れそうです。 AWSのユーザプールを使うことによって、アカウントの管理(認証権限の管理やユーザーグループ概念など)が簡単になること、ラップしてあげることでより使いやすい形で提供できることが示されていてとても勉強になりました。 フォルシアが誇る技術統括部長の武田さんによる、アカウント管理アプリケーションの作成記事です。実行コマンドや実際の画面とともに、関連技術についても丁寧に解説されているとてもわかりやすい記事です。個人的にはさらっと書かれているAmplifyの威力も衝撃的でした。 【2】GitLab CIで社内複数プロジェクトをrenovateする 記事概要 ライブラリの更新を自動化するためのツールrenovateを、Gitlab CIを活用する形で導入した。 renovate対象のプロジェクトを柔軟に取得するための機能をTypeScriptで実装し、社内の他プロジェクトでも低コストで導入できる仕組みを作成。 エンジニア社員コメント抜粋 groupにprojectを入れて管理するという発想が「なるほど!」と思いました。 renovateという概念を初めて知ることができました。社内での実際の活用事例からもその便利さを体感できました。 新卒5年目の籏野さんの記事です。社内では「ちょっとした不便を技術導入によって解消し定着させること」が「ハタナイズ」という慣用句になっているほど改善を重ねている籏野さんですが、renovateもただ「使ってみる」だけでなく、「それをまわりの人にも使いやすくする」という気配りがこの記事からも感じられますね! 【3】私が営業からエンジニアに転向した訳、できた訳 記事概要 フォルシアに総合職として入社し2年目にエンジニアへと転向した新卒社員の竹下さんが、その経緯や心境について詳しく語った記事。 営業を経験してエンジニアとなったことで、プロダクトに対する両者の視点の違いに自覚的になることができた。 エンジニア社員コメント抜粋 「営業からみたエンジニア」を意識しながら仕事に取り組もうと思えました。 一般的なIT企業と異なり、営業・技術に垣根を設けないフォルシアの特徴を、当事者として具体的な事例としてわかりやすく表現されていると感じました。 営業視点、エンジニア視点、両面から物事を分析されていてとても参考になりました。 新卒2年目となる竹下さんがキャリアについて語った記事です。フォルシアでは営業からエンジニアへの転向は初めての例ではありましたが、それを実現できた竹下さんの行動力や、周囲のサポートについて丁寧に書かれており、社内の職種やキャリアについてイメージを膨らませてもらいやすい記事だと感じます! 【4】正規表現専門家がエンジニアになって正規表現がわからなくなった話 記事概要 大学の数学科で正規表現を研究対象としていたエンジニアが、プログラミング言語における正規表現について考察した。 数学的な「正規表現」の定義に始まり、プログラミング言語における正規表現との目的の違いに触れ、具体例としてPostgreSQLの正規表現の記法や用例について解説する。 エンジニア社員コメント抜粋 なんとなくの理解で止まっている正規表現に対して、数学的な立場から詳しく説明していただいてよかったです。 正規表現大好きなので大好きな記事です。 新卒1年目の宮本さんによる記事です。あらためて問われると難しい正規表現について、厳密な定義や具体例も交えたわかりやすい解説はもちろん、ついつい引き込まれる軽妙な語り口も必見です。自分は正規表現でいつも迷って結局調べてしまうので、ありがたくこの記事をブックマークしました。 【5】PostgreSQLのシステムカタログをのぞいてみよう 記事概要 RDBMSのメタデータや内部的な情報が格納される「システムカタログ」について、特にPostgreSQL固有のスキーマについて紹介する。 例として、 pg_class からはテーブルやインデックスのoidをはじめとするメタ情報を、 pg_available_extension_versions からは導入済み拡張機能に関する情報を、 pg_stats からはチューニングにも活用可能な統計情報を得ることができる。 エンジニア社員コメント抜粋 奥深いシステムカタログについてわかりやすくまとめられており、勉強する上での指針となりました。 「プランナが見積もりに使っているテーブルを見れば、explainで吐かれた実行計画の根拠となる値が確認できる」という説明には特に納得感がありました。 PostgreSQL のシステムカタログに含まれる情報の紹介だけでなく、実際の開発で使えた機能を自らの経験を通して紹介していたり、ためになる補足情報も随所に散りばめられているため、+αで勉強になる素晴らしい記事だと感じました。 エンジニアの横串組織である「Postgresタスクフォース」のリーダーでもある吉田さんによる記事です。公式ドキュメントから読み解いていくにはなかなかハードルが高いシステムカタログについて、実際のクエリや活用事例も盛り込んだとても読みやすい解説記事です。実アプリのDBのpg_catalogを覗いてみたくなりますよ。 【6】PostgreSQLの移動集約モードについて 記事概要 PostgreSQL内部で使用される移動集約モード(アルゴリズムによる高速化)について紹介。 値を足し合わせていくような具体的なクエリについて、移動集約モードの有無に相当する2種類の解法とその計算量を示し、実際に移動集約モードが適用されるクエリとされないクエリの実行速度を比較する。 エンジニア社員コメント 移動集約モードはPostgresの内部処理のため普段意識していませんでしたが、そのような内部処理が行われていることに記事を読んで気が付き、なるほど!! と思いました。 PostgreSQL 内部で使われている高速化手法が興味深いのはもちろんですが、移動集約モードが使われる・使われない条件も分かりやすく解説されていると思います。 こちらも宮本さんによる記事です。Postgresでの内部処理の知識は、持っているとクエリの設計時やチューニングなどで役に立つ場面が唐突に訪れる一方で、わかりやすく必要に迫られることは少なく勉強の契機が得づらいものです。フォルシアでは社内のエンジニアが読みやすく書いてくれた記事によって、こういった引き出しを増やすことができて、私自身もとても助かっています。 【7】GitLab CIでブランチをオートマージ(自動追従)させる 記事概要 GitLab CIを用いて「あるブランチに入る変更を、自動で別のブランチに取り込む」仕組みを実現した。 各プロジェクトからはincludeする形で簡単な記述だけでCIを実行できるようにテンプレート化を行った。 エンジニア社員コメント抜粋 template化を活用した事例で、活用の幅が広いことに素晴らしさを感じました。 webコネクト 検索領域にも一部オートマージが導入されていてとても助かっています。中の仕組みまでは追えていなかったのでとても勉強になりました。 畏れ多くも私の記事です。チーム内では仕組み化されて何気なく使われているものでも、実はチームメンバーもその中身を詳しく知らなかったり、ましてやチーム外のメンバーは存在すら知らないこともありますよね。技術ブログには、「あえて社外公開する記事としてまとめることで、社内にも広く知ってもらうことができる」というメリットもあることを改めて感じました。 【8】FORCIA Meetup #4 PostgreSQL vs Elasticsearch -ファセットカウント編- 記事概要 2022/2/15に行われたイベント FORCIA Meetup #4 にてLTで発表された内容の書き起こし記事。 PostgreSQLとElasticsearchについて、フォルシアが提供するアプリでもよく実装されているファセットカウント (該当の絞り込み条件を選ぶと検索結果が何件残るかを先回りして表示する機能) を通じて両者の速度比較を行った。 エンジニア社員コメント抜粋 やはりフォルシアの技術のコアはPostgreSQLによる大規模データの高速検索。記事を読んでいると、あれ、Elasticsearchを薦めている?、と思いきや最後にきちんと Spook の「凄さ」をさらっと、定量的に示していて印象に残る記事でした。 Spook"チューニング"パワーについて、定量的なデータを用いることで客観性の高い検証ができていると感じました。 ファセットカウント編として、ちょっと使ってみたという類の記事ではなく、一歩踏み込んだ内容での比較だったので内容に深みがあって面白かったです。 籏野さんのLTを書き起こした記事です。ファセットカウントの実現において「一般的な書き方ではElasticsearchの方が速いが、PostgreSQLを使いフォルシアの高速検索のノウハウを活かした実装はさらに速い」という検証結果でした。驚きの実行速度はぜひ元記事をご覧ください!(そしてなぜそこまで速いのか、フォルシアのDBへのこだわりを語る記事も鋭意執筆中ですのでお楽しみに!) フォルシアの情報を多面的に発信するブログ、FORCIA CUBE さて、今回はエンジニア社員へのアンケート結果をもとに、2022年に公開した技術記事を紹介させていただきました。 フォルシアでは2021年度まではアドベントカレンダー企画を、2022年度からは月2本以上の技術記事を継続発信する月刊化企画を行っており、他にもたくさんの技術ブログがあります。 2023年もすでに7本の技術記事が公開されていますし、今年はエンジニア組織で持ち回りで執筆するユニットリレー企画も準備を進めています。ぜひご期待ください!
2023/03/17
Shinjuku.ts#2を開催しました
こんにちは。エンジニアの miyamoto です。先日開催した Shinjuku.ts#2 についてレポートします。 昨年の11月、フォルシアではTypeScriptのLTイベント Shinjuku.ts#1 を開催し、各登壇者による興味深いLTや途切れない質問などでTypeScript好き同士の交流を深めました( 開催レポートはコチラ )。 この度3カ月ぶり2度目のShinjuku.tsを開催しましたが、前回に負けないくらい参加者のTypeScript好きが伝わってくるようなイベントとなりました。イベント内で開催されたLTトークの模様を以下でお伝えします! LTの様子 React Hooksを気合で理解する | Yui Miyamoto まずは私が発表しました(出オチ)。 エンジニアは自ら希望しない限り外部向けの発表機会がほぼありません。私もこれまで発表経験はなかったのですが上長とのミーティングで「何かやってみてはどうか」と言われ、それならやってみようと今回の発表を決めました。 選んだテーマはReactです。 エンジニアの立場で色々な技術に触れていると 「何となく動かすことはできるけれども、ちゃんと仕組みを理解したうえで意図通りに操ることは難しい技術」 によく遭遇します。Reactは私にとってその代表例でした。 既存のソースコードを真似すれば一定のUIは再現できるものの、入り組んだ調査や複雑な開発をしようとすると何もわからなくなってしまう、経験を積んで取り組むタスクのレベルが上がるたびに行き詰まりを感じるようになっていきました。ちゃんと理解しなおさないとこれ以上のスキル向上を見込めないと感じ、私はReactの公式ドキュメントを読んで勉強しなおすことにしました。 ドキュメントを読んでみた結果、React Hooksについて根本的に理解していなかったことが発覚します。そこでReat Hooksの再履修を目標に、その成果物として今回の発表を行うことにしました。 発表にはある程度の正確性が求められますが、だからこそ 正確に物事を伝えられるよう小さな疑問も放置せず気の済むまで調べられたことは大きな成長につながった と思っています。「Reactをちゃんと理解した」と言える日はまだ来そうにありませんが、少しでも良いプログラムが書けるよう日々勉強に励みたいです。 miyamotoが書いたFORCIA CUBEの記事はコチラ PostgreSQLの移動集約モードについて 正規表現専門家がエンジニアになって正規表現がわからなくなった話 k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ― | komago さん 2人目は、フォルシア新卒6年目エンジニアのkomagoさんの発表でした。 k8s(Kubernetes)はフォルシアのいくつかのアプリのインフラで利用しているコンテナオーケストレーションシステムです。フォルシアではインフラに特化していないアプリエンジニアでもk8sを扱いますが、その中でyaml形式のk8s定義ファイルは心理的負担となることがありました。 cdk8s+は TypeScriptを利用してk8sの定義ファイルを書くことができる、フォルシアエンジニアにとって願ったり叶ったりなツール です。 通常のyamlだと『お決まりのルール』を毎回書かなければならず、専門外のエンジニアにとってはそれらのルールを正しく理解することが障壁となりえます。cdk8s+を利用することで『設定の本質的な部分』を書くだけで良くなるほか、様々なメリットがあるようです。 LTではcdk8s+の実演動画が披露されましたが、ビルドコマンド一発で「ts ⇒ yaml」の変換ができており初心者でも使いやすいツールなように感じました。 komagoさんはこの3月からSRE業務を主に担当することになりました。komagoさんの今後の活躍に目が離せないとともに、社内が一丸となって品質の良いプロダクトを世に出していきたいと改めて思いました。 komagoさんが書いたFORCIA CUBEの記事はコチラ スベっていいとも! 自然派お笑い担当エンジニアの次なる挑戦 Kubernetesやっていくぞ Fargate for EKSでデータ変換バッチのJobを動かした話 おわりに Shinjuku.tsは今回で二度目の開催、とにもかくにも一発屋で終わらなかったことを嬉しく思っています。 今後も長く続くイベントにしていきたいので、みなさまのご参加ご登壇をお待ちしております!
2023/03/10
フォルシアのWebフレームワーク技術選定 ~JavaScript/Rhino/TomcatからTypeScript/Node.jsへ~
こんにちは。エンジニアの籏野です。 フォルシアでは Tomcat(Java)上で動く Web アプリケーションフレームワークを自社で開発・運用してきており、2001 年の創業当初から長い間フォルシアの Web アプリ開発を支えてきました。 このフレームワークもまだまだ現役で活躍していけるものではありますが、2019 年頃からは TypeScript/Node.js を利用した新しいフレームワークを構築してアプリ開発が行われています。 Tomcat(Java)から TypeScript/Node.js という言語の仕様もまったく異なる技術セットへの移行をなぜ決断したのか、また実際の検討の様
2023/03/08
OpenAPI定義を使ってGASからSlackへのリクエストを簡単に実装する
こんにちは、エンジニアの籏野です。 フォルシアでは社内のコミュニケーションツールに Slack を利用しています。 その用途は単純なチャットツールにとどまらず、監視アラートのような各種通知やリマインダー、勤怠管理など様々な目的のために利用されています。 そのような社内からの要望に応えるために、Slack API を利用した様々なアプリケーションが社内で誕生しています。 Slack API は公式ドキュメントもあるので、基本的にこちらに沿えば利用できますが繰り返し使っているともう少しイケてる仕組みで利用したくなってきます。 そこで今回はアプリ開発の方で知見が溜まりつつある「OpenAPI
2023/02/17
クイックソートを攻略してみた
はじめに こんにちは! 入社1年目、DXプラットフォーム部エンジニアの松川です。 フォルシアには現在競技プログラミングが好きな社員が多く在籍しています。そこで「競技プログラミングが好きな社員が発信するシリーズ」と題しまして、競技プログラミングに関連する内容を扱っていきます。 ところで、業務、競技を問わず我々がコードを書く際に頻繁に出てくるソートアルゴリズム、これについて普段から意識されている方は少ないかなと思います。もちろん特段内部実装を気にしなくても実用上問題はないのですが、ある特定の実装のソートを攻撃する手段を最近知り、興味深かったのでこの記事ではその quicksort kil
2023/02/10
Rust の generic_const_exprs の紹介
はじめに こんにちは! 入社1年目、旅行プラットフォーム部エンジニアの辻󠄀です。 突然ですが、みなさんは好きなプログラミング言語をお持ちでしょうか? 私は Rust というプログラミング言語が好きで、個人開発や研究、業務、インターンなど、多くの機会で利用してきました。 プログラミング言語を学んで長いこと使っていると、実装するものだけでなくその言語自体に愛着が湧き、より深く知りたくなっていきます。 例えば、エンドユーザーである我々が普段利用したことのない開発中の言語機能や、言語を取り巻くエコシステムの今後の改善について興味が湧くこともあるでしょう。 この記事では、私がそのような興味のも
2023/01/27
社会人1年目エンジニアが転職してみた後の話
はじめに こんにちは。社会人 2 年目エンジニアの桃原です。 私は社会人 1 年目 1 月から転職活動を行い 2022 年の 4 月にフォルシアにキャリア入社しました。 この記事では主に転職後 9 ヶ月の業務内容をメインで話したいと思います。キャリア入社を考えている人や新卒 2 年目の仕事がどのような感じかを知りたい人にとって参考になると幸いです。 転職するまでの経緯 新卒で就職活動を行っていた際は、情報系の学生であるもののゲーム開発と競技プログラミングなどしかしたことがなく、具体的な業務イメージがない状態でした。 そのため、バックエンドエンジニアやフロントエンジニアなど自分が何
2023/01/20
awk組み込み変数の活用でさまざまな形式のテキストファイルを扱う
DXプラットフォーム部エンジニアの吉成です。 皆さんの日々の業務では、awk というプログラミング言語(あるいはコマンド)を活用されているでしょうか。 awk はテキスト処理が得意で、正規表現による文字列マッチング機能も強力です。 特にレコード・フィールドといった一定単位でのテキストの取り扱いに長けています。 レコードは awk プログラムにおけるテキストの処理単位で、典型的にはテキストデータの「行」などを指します。 フィールドはレコードをさらに細かく区切った単位で、典型的には csv ファイルの「,」で区切られた部分のテキストを指します。 典型例を紹介しましたが、レコードもフィールドも
1
2
3
4
5
6
More pages
13
コンテンツ
トップ
ブログ
グループに関するお問い合わせ