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
技術力向上のためのコードレビューのススメ/#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.5k
Rails の CLI ツールの書き方/writing-rails-cli-tool
sanfrecce_osaka
0
65
Time.zone.parse('dark')/time-zone-parse-dark
sanfrecce_osaka
0
120
外部APIが絡むテストをちょっといい感じに書く/a-little-nice-writing-external-api-testing
sanfrecce_osaka
0
35
gem_rbs_collection へのコントリビュートから始める Ruby の型の世界/contributing-gem-rbs-collection
sanfrecce_osaka
0
620
Rails と人魚の話/rails-and-mermaid
sanfrecce_osaka
0
480
パターンマッチ使ってるかい?(kyobashi.rb)/use-ruby-s-pattern-matching-on-kyobashi-rb
sanfrecce_osaka
0
280
ApplicationController の継承を分割してエラーを減らした話/dividing-application-controller
sanfrecce_osaka
1
420
Input object ではじめる入力値検証/input-value-validation-using-input-object
sanfrecce_osaka
0
610
Other Decks in Programming
See All in Programming
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
0
180
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
440
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.7k
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
150
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
180
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.4k
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
140
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
130
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
280
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
280
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Exploring anti-patterns in Rails
aemeredith
3
450
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
Building an army of robots
kneath
306
46k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
920
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4k
Prompt Engineering for Job Search
mfonobong
0
390
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ͷΑ͏ͳ͓ΛूΊͨαʔϏε ➤ ϨϏϡʔड͚͍ͨਓͱϨϏϡʔͯ͘͠ΕΔਓΛ݁ͼ͚ͭΔ ϚονϯάαΠτ
͝ਗ਼ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠