Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
1人システム開発を通じて感じたこと
Search
矢島 達朗 / Tatsuro Yajima
December 09, 2023
Business
830
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
1人システム開発を通じて感じたこと
1人でシステム開発を経験する中で感じたことなどをまとめました。
後半はリファクタリングについても言及しています。
矢島 達朗 / Tatsuro Yajima
December 09, 2023
More Decks by 矢島 達朗 / Tatsuro Yajima
See All by 矢島 達朗 / Tatsuro Yajima
なぜ、データ駆動戦略が重要なのか?書籍『DMM.comを支えるデータ駆動戦略』より
tatsuroyajima
0
310
なぜ、コメントを書くべきなのか?(A Philosophy Of Software Designより)
tatsuroyajima
0
300
Other Decks in Business
See All in Business
データを使う側視点のデータ整備 / 第2回 データ整備を前向きに考える会
shinu
PRO
0
520
クリヤマホールディングス㈱採用資料
uemura2024
0
9.2k
アジャイルのインストールと実践 ~導入の軌跡と現在地~
nakahara
0
280
㈱サンエー 会社 採用資料
uemura2024
0
5.2k
Macbee Planet_会社紹介資料
macbeeplanet
0
300
uniam_事業概要.pdf
uniam
PRO
0
770
オープンワーク会社紹介資料 / company profile
openwork
4
600k
【株式会社カオナビ】会社紹介資料 for business / kaonavi/introduction-for-business
kaonavi
0
86k
マーケティンググループ紹介資料/ marketing
m3c
2
18k
Hubble Behavior Principles
hubbleinc
0
430
シナジーマーケティング株式会社 採用ピッチ資料
synergymarketing
0
67k
Steamで売れないゲームに共通する失敗パターン
hirohasuyoutube
0
260
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Mobile First: as difficult as doing things right
swwweet
225
10k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How to Ace a Technical Interview
jacobian
280
24k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
New Earth Scene 8
popppiees
4
2.7k
Transcript
1人システム開発を通じて感じたこと やじま(株式会社Qureテクノロジーズ)
自己紹介 名前 やじま(矢島達朗) 所属 株式会社Qureテクノロジーズ (自社サービス 開発責任者) 趣味 音楽(ベース) 写真撮影(野良猫・スナップなど)
2
質問 3
みなさまの開発組織は 何名体制ですか? 4
弊社は 1名 体制です 5
弊社のご紹介 株式会社Qureテクノロジーズ - 創業 6期目 - 社員数 3名 - 事業内容
- - 会計コンサル 6
弊社のご紹介 株式会社Qureテクノロジーズ - 創業 6期目 - 社員数 3名 - 事業内容
- - 会計コンサル 7 私の担当領域
Sharesってなに? 株主名簿を管理するためのSaaS 以下の業務を改善します。 - 株主名簿管理 - 株主総会管理 - 配当管理 8
弊社の組織体制 9 弊社代表(経営判断) - 機能の発案 - 要件定義 私(開発) - 要件定義、設計、実装
- テスト、運用 - 顧客対応(商談)
1人システム開発を通じて 感じたこと 10
1人システム開発を通じて感じたこと プラスの側面 1. コードに統一感が出る 2. お客様との距離が近い 3. やりたいことを即実行できる マイナスの側面 1.
レビューを受けられない 2. やることが多い 3. さびしい(切実) 11
1人システム開発 プラスの側面 12
プラスの側面 1. スムーズに開発できる 2. お客様との距離が近い 3. やりたいことを即実行できる 13
プラスの側面 1. スムーズに開発できる 2. お客様との距離が近い 3. やりたいことを即実行できる 14
プラスの側面1. スムーズに開発できる 15 メンバー間の調整が不要です。 フォーマッタどうする? 設計方針は? チーム開発あるある ( 早く開発したいな〜 )
プラスの側面 1. スムーズに開発できる 2. お客様との距離が近い 3. やりたいことを即実行できる 16
プラスの側面2. お客様との距離が近い 17 フィードバックをすぐ開発に反映できます。 アレをアレする機能が欲しいんだけど…… あ〜アレですね、わかりました
18 顧客からはじめる! 関連書籍『みんなでアジャイル』 https://fukabori.fm/episode/32
プラスの側面 1. スムーズに開発できる 2. お客様との距離が近い 3. やりたいことを即実行できる 19
プラスの側面3. やりたいことを即実行できる 20 最近やったこと - バリューオブジェクト導入 - リファクタリング - 自動テスト導入
猫カフェで作業したい
1人システム開発 マイナスの側面 21
マイナスの側面 1. レビューを受けられない 2. やることが多い 3. さびしい(切実) 22
マイナスの側面 1. レビューを受けられない 2. やることが多い 3. さびしい(切実) 23
マイナスの側面1. レビューを受けられない 24 変なコードを書いていたとしても、気付けない 可能性があります。 出典: https://twitter.com/mdkgames22/status/1030048531606695936 ( 自分で書いたから大丈夫! )
マイナスの側面 1. レビューを受けられない 2. やることが多い 3. さびしい(切実) 25
マイナスの側面2. やることが多い 26 開発以外の業務が多いです。 スイッチングコストが高い! 顧客対応 補助金申請 コラム執筆
マイナスの側面 1. レビューを受けられない 2. やることが多い 3. さびしい(切実) 27
マイナスの側面3. さびしい(切実) 28 技術的な雑談ができない! 新技術・新サービスの情報が入ってこない。 状況を打破するため、勉強会に参加す るようになりました
おまけ 29
こんなリファクタリングしてます 30
1. 早期リターン 2. ファットコントローラーの解消 3. バリューオブジェクト導入 31 こんなリファクタリングしてます
1. 早期リターン 2. ファットコントローラーの解消 3. バリューオブジェクト導入 32 こんなリファクタリングしてます
1. 早期リターン 33 Before
34 Before - ずっと条件式を意識する必要がある - ネストが深くなりがち - 可読性が下がる 1. 早期リターン
35 After 1. 早期リターン
36 After すぐリターンする! ネストが浅くなる 1. 早期リターン
1. 早期リターン 2. ファットコントローラーの解消 3. バリューオブジェクト導入 37 こんなリファクタリングしてます
38 2. ファットコントローラーの解消 Before(実際にあった怖いコントローラー)
39 2. ファットコントローラーの解消 Before - エディタの動作が遅くなる - 目当てのコードを探す手間が増える
40 2. ファットコントローラーの解消 After 以下の対策を行います。 1. 処理を移植する(モデル層・サービス層) 2. 細かくメソッド化して、共通化する -
DRY原則 - 宣言的な記述 を意識しています
1. 早期リターン 2. ファットコントローラーの解消 3. バリューオブジェクト導入 41 こんなリファクタリングしてます
42 3. バリューオブジェクト導入 Before
43 3. バリューオブジェクト導入 Before 可読性が低い! 変更する時大変! つらい
44 3. バリューオブジェクト導入 After
45 3. バリューオブジェクト導入 プロパティのみのクラス でデータを管理します
まとめ 46
1人システム開発を通じて感じたこと プラスの側面 1. スムーズに開発できる 2. お客様との距離が近い 3. やりたいことを即実行できる 47
1人システム開発を通じて感じたこと マイナスの側面 1. レビューを受けられない 2. やることが多い 3. さびしい(切実) 48
49 ご清聴ありがとうございました! 感想お待ちしています