Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Technical Decisions and Reflections on "Test M...
Search
meijin
January 21, 2025
Programming
1
24
Technical Decisions and Reflections on "Test Maker" After Two Years of Development
meijin
January 21, 2025
Tweet
Share
More Decks by meijin
See All by meijin
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
25k
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
3
1.7k
サービス黎明期にNuxt.js v2からNext.js移行を決めた理由と進め方
texmeijin
0
360
スタートアップCTOが個人開発で収益化・年13本記事発信・5件登壇を平行するための時間管理
texmeijin
4
1.1k
個人開発がおすすめな理由
texmeijin
3
950
弊社の開発体験の良いところは?メンバーに訊いてみた!
texmeijin
0
380
初めてESLintプラグインにコントリビュートした話
texmeijin
0
150
先生と一緒に プロダクトを良くする アナリティクス機能の開発
texmeijin
0
71
ハードルが激低な社内勉強会を続けている話
texmeijin
0
5.5k
Other Decks in Programming
See All in Programming
テストをしないQAエンジニアは何をしているか?
nealle
0
130
AWS Lambda functions with C# 用の Dev Container Template を作ってみた件
mappie_kochi
0
240
“あなた” の開発を支援する AI エージェント Bedrock Engineer / introducing-bedrock-engineer
gawa
11
1.8k
functionalなアプローチで動的要素を排除する
ryopeko
1
1.4k
Lottieアニメーションをカスタマイズしてみた
tahia910
0
120
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
120
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
10
1.8k
WebDriver BiDiとは何なのか
yotahada3
1
130
SpringBoot3.4の構造化ログ #kanjava
irof
2
960
sappoRo.R #12 初心者セッション
kosugitti
0
210
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
5
3.6k
Open source software: how to live long and go far
gaelvaroquaux
0
610
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.5k
Automating Front-end Workflow
addyosmani
1367
200k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Scaling GitHub
holman
459
140k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
99
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
400
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
Writing Fast Ruby
sferik
628
61k
Building Applications with DynamoDB
mza
93
6.2k
Why Our Code Smells
bkeepers
PRO
335
57k
It's Worth the Effort
3n
184
28k
Transcript
2年間開発を続けている テストメーカー立ち上げ時の 技術選定と振り返り 株式会社NoSchool CTO meijin
アジェンダ 自己紹介 テストメーカーの紹介 テストメーカーの技術選定 Great or Normal or Not-Great 個人開発の技術選定Tips
自己紹介
名人(@meijin_garden) 職種・SNS 株式会社NoSchool CTO 2016年〜株式会社LIFULL Webエンジニア 2019年〜株式会社NoSchool CTO Twitter(X): 名人
|マナリンクCTO 🔍 Zenn: https://zenn.dev/meijin 🔍 好きな言語はTypeScript、好きなCSSプロパティはobject-fit 趣味 将棋 ☗、カメラ 📸、個人開発 💻、ラム酒 🥃、筋トレ 💪、高校野球観戦 ⚾、麻雀 🀄
テストメーカーの紹介
テストメーカーとは 概要 「穴埋めテストを簡単に作れるWebアプリケーション」 「穴埋めテスト」でGoogle1位(多分) 🔍🌐 https://www.test-maker.app 沿革 2022年6月リリース リリースツイートが2,000RT以上、IT Media
Newsに掲載 📣 2025年1月現在、2万人以上の会員登録。有料版も提供 💰 主なユーザーは学校の先生、資格受験、企業研修など
マウスやタッチ操作で簡単穴埋めテスト作成 &編集
回答URLを配布して、簡単共有
テストメーカーの技術選定
技術選定一覧 ※ ⭐をつけているものをこのあと解説します フロントエンド Next.js / Tailwind CSS / ⭐daisyUI
/ ⭐Slate.js (リッチテキストエディタ) / Vercel バックエンド ⭐frourio (Node.jsフレームワーク) / Prisma / PostgresQL / Firebase Auth / ⭐Railway その他 Sentry / ⭐Posthog / Stripe
daisyUI(https://daisyui.com/) 【Great 】 Tailwind CSSのコンポーネントライブラリ <details class="dropdown"> <summary class="btn m-1">open
or close</summary> <ul class="menu dropdown-content bg-base-100 rounded-box z-[1] w-52 p-2 shadow"> <li><a>Item 1</a></li> <li><a>Item 2</a></li> </ul> </details> 0:00
daisyUI | 解説 Dropdownを作るのに、JavaScriptは不要! <details> と <summary> で実装できる そこにCSSでスタイルを当てれば、見た目はDropdownになる 純粋にHTMLとCSSの勉強になるので、GitHub
Repoを読むと楽しい CSSしかないので、CSS筋が鍛えられる 技術的なメリット Server ComponentsのままでUIが実装できる
Slate.js(https://docs.slatejs.org/) 【Not-Great 】 Slate.jsについて 競合としてTiptap、Quill、Editor.js、Lexicalなどがある 長所 フルカスタマイズ可能。機能ごとに提供されている 短所 バージョンが未だに0系。実態として破壊的変更が多い 実質Plateというラッパーライブラリが必須だが、こちらも破壊的変更が多い
→今から始めるなら、Tiptapをおすすめします ✅「リッチテキストエディタ 基礎」でGoogle1位のこの記事をぜひ! https://zenn.dev/meijin/articles/rich-text-editor-basis-knowledge
テストメーカーでWYSIWYGエディタを使った理由 テストメーカーの「マウスで選択したところが穴埋めになる」体験 抽象化すると 「ユーザーの操作をフックに、特定のDOMを別のDOMへ変換する」 が必要 WYSIWYGエディタの 「Command+Bでspanをstrongへ変換する」 と一緒! カスタマイズ性の高いWYSIWYGエディタライブラリを利用し、当該機能を実現
frourio(https://frourio.io/) 【Normal 】 Node.jsフルスタックフレームワーク 2025年現在もNode.js製FWは乱立 個人的に最有力)Hono, frourio, Nest.js 個人的に有力視)FoalTS, Blitz.js,
RedwoodJS frourioの特長 関数を中心とした設計。ClassやDecoratorは使わない! →ただ、テストメーカーのようなWebのみ &シンプルCRUDなサービスを今から始めるなら、 Next.js+Supabaseのみでやります
Railway(https://railway.app/) 【Not-Great 】 概要と長所 めっっっちゃ簡単に使えるPaaS。管理画面がイケてる。開発自体は盛ん 料金 |バックエンドサーバーとPostgresQLで月額$20程度 欠点:不安定…というか信頼度が微妙というか… 一番酷かったときで深夜3時に落ちて翌日14時頃まで復旧しなかった Discordでサポートがあるが、英語なので正直しんどい
割としばしば大きめのmigrationをやっているようで、DBの再起動したら ストレージがアメリカからシンガポールに勝手に移動 &途中でCancelしたらDBが画面上か ら消失したことがある。 太平洋に落ちたのかと思った…
Posthog(https://posthog.com/) 【Great 】 Google Analyticsの代替 価格:有料版もあるが、無料枠も(個人開発なら)十分な量 特長 とにかくエンジニアフレンドリー トラッキングの実装が簡単 &そこそこモダン
データ分析が、SQLライクな独自言語でできる。BIツールがオールインされているイメージ
Posthog | スクショ SQLライクにイベントを分析することができる 新機能リリース後、何人がUI上で反応したか?といった、「欲しいデータだけどGAいじりた くないなぁ」みたいなものが分かる
個人開発の技術選定Tips
個人開発の技術選定Tips 極論、simpleなもの選んでおけば大後悔はしない 例: Railway についてNot-Greatと評したが、元々がsimpleですぐ使えるツールなので、 個人開発のスピード感には大いに貢献している 【そのサービスの勝負どころ 】に集中できる選定 例:テストメーカーの最大の勝負どころはカスタマイズされたWYSIWYGエディタ。 Slate.jsは破壊的変更が多いが採用の価値があった
例:WYSIWYGエディタは開発に時間がかかるし、Bundle Sizeも大きい。 daisyUIは「爆速でUI開発しつつ軽いバンドルサイズで実装」できる ⭐リソースが特に限られる個人開発は、メリハリをつけて尖った開発をしよう! ⭐
ご清聴ありがとうございました! こちらの記事にプロダクトマネジメントのTipsなども書いています。 【テストメーカー 支える技術 】で検索 🔍 https://zenn.dev/meijin/articles/personal-development-release-and-paid-story