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
技術力向上のためのコードレビューのススメ/#hiraba-tech-night-201805
Search
Masatoshi Moritsuka
May 25, 2018
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
技術力向上のためのコードレビューのススメ/#hiraba-tech-night-201805
Masatoshi Moritsuka
May 25, 2018
More Decks by Masatoshi Moritsuka
See All by Masatoshi Moritsuka
拙者、『型は欲しいが型は書きたくない』者たちとの和睦を結び、るびぃにおける型の領地安堵を実現せんと欲す者也 #sekigahara01/sekigahara01
sanfrecce_osaka
4
2.7k
Rails の CLI ツールの書き方/writing-rails-cli-tool
sanfrecce_osaka
0
86
Time.zone.parse('dark')/time-zone-parse-dark
sanfrecce_osaka
0
140
外部APIが絡むテストをちょっといい感じに書く/a-little-nice-writing-external-api-testing
sanfrecce_osaka
0
40
gem_rbs_collection へのコントリビュートから始める Ruby の型の世界/contributing-gem-rbs-collection
sanfrecce_osaka
0
650
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
500
パターンマッチ使ってるかい?(kyobashi.rb)/use-ruby-s-pattern-matching-on-kyobashi-rb
sanfrecce_osaka
0
310
ApplicationController の継承を分割してエラーを減らした話/dividing-application-controller
sanfrecce_osaka
1
450
Input object ではじめる入力値検証/input-value-validation-using-input-object
sanfrecce_osaka
0
630
Other Decks in Programming
See All in Programming
setup-vp GitLab対応の裏側
naokihaba
0
140
速習iPhone Duo対応
yuukiw00w
2
910
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
450
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
FreeBSDでZabbixを動かす
kenkino
0
340
Are APIs Still Relevant in the AI Era?
soyuka
0
390
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
260
Intent as Code
shoppingjaws
6
1.1k
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.2k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
1
110
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
150
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
Featured
See All Featured
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
620
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
270
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
600
A Modern Web Designer's Workflow
chriscoyier
699
190k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
First, design no harm
axbom
PRO
2
1.3k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
450
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
250
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
GitHub's CSS Performance
jonrohan
1033
470k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
510
From π to Pie charts
rasagy
1
380
Transcript
ٕज़ྗ্ͷͨΊͷ ίʔυϨϏϡʔͷεεϝ ௩ ਅ
ࣗݾհ ➤ ௩ ਅ ➤ RailsϓϩάϥϚʢ༧ఆʣ ➤ ࠷ۙͷؔ৺ࣄ ➤ ϑϩϯτΤϯυ
➤ React ➤ Vue ➤ ϞόΠϧΞϓϦ ➤ React Native ➤ Twitterɿ@sanfrecce_osaka
ϓϩάϥϛϯάͷษڧ๏ ➤ ࣄ ➤ ֶशαʔϏε ➤ εΫʔϧܥ ➤ WebαʔϏεܥ ➤
νϡʔτϦΞϧ ➤ ٕज़ॻɾυΩϡϝϯτ ➤ ษڧձɾίϛϡχςΟͷࢀՃ ➤ ίʔυϨϏϡʔΛड͚Δ
ίʔυϨϏϡʔͷར ➤ ٕज़ྗΛ্͛ΔҰ൪ޮ͕͍͍ษڧ๏ ➤ ίʔυ͕͖Ε͍ʹͳΔ ➤ Βͳ͔ͬͨΠσΟΦϜϝιουΛΔ͜ͱ͕Ͱ͖Δ ➤ ໋໊͍͍๏͕ΕΔ ➤
ྑ͍ίʔυͷॻ͖ํ͓࡞๏͕Θ͔Δ ➤ ࣮ܦݧະܦݧͷਓֶੜͰܦݧͰ͖Δ
۩ମྫʢίʔυϨϏϡʔલʣ 1 | # frozen_string_literal: true 2 | 3 |
require 'rake/clean' 4 | 5 | namespace :rubocop do 6 | desc 'ରϑΝΠϧͷจࣈྻΛΠϛϡʔλϒϧʹ͢Δ' 7 | task :add_frozen_string do 8 | LIST_NAME = 'target_list.txt' 9 | CLEAN.include(LIST_NAME) 10 | sh %(bundle exec rubocop | grep "Missing frozen string" | cut -d: -f 1 > #{LIST_NAME}) 11 | File.open(LIST_NAME, 'r+') do |list| 12 | list.each_line do |file_path| 13 | File.open(file_path.chomp, 'r+') do |target| 14 | lines = target.readlines 15 | inserted = "# frozen_string_literal: true\n\n" 16 | if %r{!/usr/bin/env ruby}.match?(lines.first) 17 | lines.insert(1, inserted) 18 | else 19 | lines.unshift(inserted) 20 | end 21 | target.rewind 22 | lines.each { |line| target.write(line) } 23 | end 24 | end 25 | end 26 | Rake::Task['clean'].execute 27 | end 28 | end
۩ମྫʢίʔυϨϏϡʔޙʣ 1 | # frozen_string_literal: true 2 | 3 |
namespace :rubocop do 4 | desc 'ରϑΝΠϧͷจࣈྻΛΠϛϡʔλϒϧʹ͢Δ' 5 | task :add_frozen_string do 6 | file_path_list = `bundle exec rubocop | grep "Missing magic comment" | cut -d: -f 1`.chomp.split('\n') 7 | ADDITIONAL_LINE = "# frozen_string_literal: true\n\n" 8 | file_path_list.each do |file_path| 9 | lines = File.readlines(file_path) 10 | if %r{#!/usr/bin/env ruby}.match?(lines.first) 11 | lines.insert(1, ADDITIONAL_LINE) 12 | else 13 | lines.unshift(ADDITIONAL_LINE) 14 | end 15 | File.write(file_path, lines.join('')) 16 | end 17 | end 18 | end
ϨϏϡʔΛड͚ΔΛ࡞Δ ➤ ΠϕϯτΛاը͢Δ ➤ ίϛϡχςΟΛ࡞Δ ➤ ϨϏϡʔΠ͚ͩͰͳ͘ϨϏϡΞʔܦݧͰ͖ΔΑ͏ʹͨ͠ ͍ ➤ αʔϏεΛ࡞Δ
➤ @jnchito͞Μͷtrain-ticketͷΑ͏ͳ͓ΛूΊͨαʔϏε ➤ ϨϏϡʔड͚͍ͨਓͱϨϏϡʔͯ͘͠ΕΔਓΛ݁ͼ͚ͭΔ ϚονϯάαΠτ
͝ਗ਼ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠