Upgrading�Rails?�It�is�a�
good�time�to�refactor�
your�code
P.S.V.R
Powered�by�Rabbit�2.1.2
Rails�4.1�was�released�
last�week!
1/39
Why�is�it�a�good�time�to�
refactor�your�code?�(1)
Trust�me:�if�you�had�time�for�
upgrading,�you�would�have�time�for�
refac...
Why�is�it�a�good�time�to�
refactor�your�code?�(2)
����������������������������������������
�������������������������������...
Why�is�it�a�good�time�to�
refactor�your�code?�(3)
�����������������������������������
���������
������������������
�������...
Roadmap
Ⅰ.�Community�Guidelines
Ⅱ.�Code�coverage
Ⅲ.�Dependencies�updating
Ⅳ.�Density�of�Comments
Ⅴ.�Cyclomatic�complexity
...
Ⅰ.�Community�
Guidelines�(1)
ruby-style-guide
A�community-driven�Ruby�coding�style�
guide
https://github.com/bbatsov/ruby-...
Ⅰ.�Community�
Guidelines�(2)
ex.�Comments�section
7/39
Ⅰ.�Community�
Guidelines�(3)
rails-style-guide
A�community-driven�Rails�3�&�4�style�
guide
https://github.com/bbatsov/rail...
Ⅰ.�Community�
Guidelines�(4)
ex.�Routing�section
9/39
Ⅱ.�Code�coverage�(1)
simplecov
Code�coverage�for�Ruby�1.9+�with�a�
powerful�configuration�library�and�
automatic�merging�of...
Ⅱ.�Code�coverage�(2)
11/39
Ⅱ.�Code�coverage�(3)
coveralls.io
https://coveralls.io/
gem�ʻcoverallsʼ,�require:�false
12/39
Ⅱ.�Code�coverage�(4)
13/39
Ⅲ.�Dependencies�
updating�(1)
gemnasium
https://gemnasium.com/
14/39
Ⅲ.�Dependencies�
updating�(2)
15/39
Ⅳ.�Density�of�
Comments�(1)
cf.�http://staff.unak.is/andy/
StaticAnalysis0809/metrics/dc.html
16/39
Ⅳ.�Density�of�
Comments�(2)
inch
Documentation�measurement�tool�for�
Ruby,�based�on�YARD.
gem�install�inch
17/39
Ⅳ.�Density�of�
Comments�(3)
18/39
Ⅳ.�Density�of�
Comments�(4)
inch-pages
https://github.com/rrrene/inch-pages
19/39
Ⅳ.�Density�of�
Comments�(5)
20/39
Ⅴ.�Cyclomatic�
complexity�(1)
developed�by�Thomas�J.�McCabe,�Sr.�in�
1976
For�this�strongly�connected�control�
flow�graph,�...
Ⅴ.�Cyclomatic�
complexity�(2)
22/39
Ⅴ.�Cyclomatic�
complexity�(3)
�������
�����������
���
ex.�Cyclomatic�complexity�=�1
23/39
Ⅴ.�Cyclomatic�
complexity�(4)
������������������
������������������������
���
ex.�Cyclomatic�complexity�=�2
24/39
Ⅴ.�Cyclomatic�
complexity�(5)
�������������������������������
���������������������������������������
���
ex.�Cyclomatic�c...
Ⅴ.�Cyclomatic�
complexity�(6)
������������
����������
�������������������������������
���������������������������������
��...
Ⅴ.�Cyclomatic�
complexity�(7�-�before)
������������������������
�������������
��������������������������������������������...
Ⅴ.�Cyclomatic�
complexity�(8�-�after)
������������������������������������������������������
������������������������
����...
Ⅴ.�Cyclomatic�
complexity�(9�-�after)
����������������
�������������������
���������������������������
�������������������...
Ⅵ.�Static�code�analyzer�
(1)
rubocop
gem�install�rubocop
rubocop�-R�>�rubocop.txt
30/39
Ⅵ.�Static�code�analyzer�
(2)
31/39
Ⅵ.�Static�code�analyzer�
(3)
codeclimate
https://codeclimate.com/
32/39
Ⅵ.�Static�code�analyzer�
(4)
33/39
Ⅶ.�Commit�messages�
(1)
good�commit�message�example
34/39
Ⅶ.�Commit�messages�
(2)
bad�commit�message�examples
35/39
Ⅶ.�Commit�messages�
(3)
bad�commit�message�examples
36/39
Ⅶ.�Commit�messages�
(4)
bad�commit�message�examples
37/39
How�to�write�good�
commit�messages?
Use�English
Use�the�imperative,�present�tense:�
“change”,�not�“changed”�or�“changes”;�...
Download�the�slides
https://github.com/pmq20
39/39Powered�by�Rabbit�2.1.2
Upcoming SlideShare
Loading in …5
×

Upgrading rails-it-is-a-good-time-to-refactor-your-code-en-upgrading-rails-it-is-a-good-time-to-refactor-your-code

392 views

Published on

Published in: Entertainment & Humor
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
392
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Upgrading rails-it-is-a-good-time-to-refactor-your-code-en-upgrading-rails-it-is-a-good-time-to-refactor-your-code

  1. 1. Upgrading�Rails?�It�is�a� good�time�to�refactor� your�code P.S.V.R Powered�by�Rabbit�2.1.2
  2. 2. Rails�4.1�was�released� last�week! 1/39
  3. 3. Why�is�it�a�good�time�to� refactor�your�code?�(1) Trust�me:�if�you�had�time�for� upgrading,�you�would�have�time�for� refactoring 2/39
  4. 4. Why�is�it�a�good�time�to� refactor�your�code?�(2) ���������������������������������������� ������������������������������������������� �������� ������������������������������������������������������������������� some�upgraded�behaviors�require� refactoring�after�all 3/39
  5. 5. Why�is�it�a�good�time�to� refactor�your�code?�(3) ����������������������������������� ��������� ������������������ ��������������������������� �������������������������������� ���������������������������������������������������������� ����������������������������������������������������� You�wan�to�implement�old�functions�via� new�features 4/39
  6. 6. Roadmap Ⅰ.�Community�Guidelines Ⅱ.�Code�coverage Ⅲ.�Dependencies�updating Ⅳ.�Density�of�Comments Ⅴ.�Cyclomatic�complexity Ⅵ.�Static�code�analyzer Ⅶ.�Commit�messages 5/39
  7. 7. Ⅰ.�Community� Guidelines�(1) ruby-style-guide A�community-driven�Ruby�coding�style� guide https://github.com/bbatsov/ruby-style- guide 6/39
  8. 8. Ⅰ.�Community� Guidelines�(2) ex.�Comments�section 7/39
  9. 9. Ⅰ.�Community� Guidelines�(3) rails-style-guide A�community-driven�Rails�3�&�4�style� guide https://github.com/bbatsov/rails-style- guide 8/39
  10. 10. Ⅰ.�Community� Guidelines�(4) ex.�Routing�section 9/39
  11. 11. Ⅱ.�Code�coverage�(1) simplecov Code�coverage�for�Ruby�1.9+�with�a� powerful�configuration�library�and� automatic�merging�of�coverage�across� test�suites gem�install�simplecov 10/39
  12. 12. Ⅱ.�Code�coverage�(2) 11/39
  13. 13. Ⅱ.�Code�coverage�(3) coveralls.io https://coveralls.io/ gem�ʻcoverallsʼ,�require:�false 12/39
  14. 14. Ⅱ.�Code�coverage�(4) 13/39
  15. 15. Ⅲ.�Dependencies� updating�(1) gemnasium https://gemnasium.com/ 14/39
  16. 16. Ⅲ.�Dependencies� updating�(2) 15/39
  17. 17. Ⅳ.�Density�of� Comments�(1) cf.�http://staff.unak.is/andy/ StaticAnalysis0809/metrics/dc.html 16/39
  18. 18. Ⅳ.�Density�of� Comments�(2) inch Documentation�measurement�tool�for� Ruby,�based�on�YARD. gem�install�inch 17/39
  19. 19. Ⅳ.�Density�of� Comments�(3) 18/39
  20. 20. Ⅳ.�Density�of� Comments�(4) inch-pages https://github.com/rrrene/inch-pages 19/39
  21. 21. Ⅳ.�Density�of� Comments�(5) 20/39
  22. 22. Ⅴ.�Cyclomatic� complexity�(1) developed�by�Thomas�J.�McCabe,�Sr.�in� 1976 For�this�strongly�connected�control� flow�graph,�Cyclomatic�complexity�=�3� is�the�number�of�linearly�independent� cycles�that�exist�in�the�graph,�i.e.�those� cycles�that�do�not�contain�other�cycles� within�themselves. 21/39
  23. 23. Ⅴ.�Cyclomatic� complexity�(2) 22/39
  24. 24. Ⅴ.�Cyclomatic� complexity�(3) ������� ����������� ��� ex.�Cyclomatic�complexity�=�1 23/39
  25. 25. Ⅴ.�Cyclomatic� complexity�(4) ������������������ ������������������������ ��� ex.�Cyclomatic�complexity�=�2 24/39
  26. 26. Ⅴ.�Cyclomatic� complexity�(5) ������������������������������� ��������������������������������������� ��� ex.�Cyclomatic�complexity�=�3 25/39
  27. 27. Ⅴ.�Cyclomatic� complexity�(6) ������������ ���������� ������������������������������� ��������������������������������� ������������������������������������� ����������������������������������� ������������������������������� ����������������������������������� ������������������������������� ����� ��� ex.�Cyclomatic�complexity�=�8 26/39
  28. 28. Ⅴ.�Cyclomatic� complexity�(7�-�before) ������������������������ ������������� ��������������������������������������������������������� �������������������������������������� ������������������������������������ ����������������������� ���������������������������������������������� ��������������������� ����������������������������� ��������������������������������� ���������������������������������� ���������������������������������������� ��������������������������������� ���������������������������������������������������� ����������������������������������� ����������������������������������� �������������������������������������������������� ������������������������������������������������������������� ���������������������������� ����� ����� ������������� ��� 27/39
  29. 29. Ⅴ.�Cyclomatic� complexity�(8�-�after) ������������������������������������������������������ ������������������������ �������������������������������������������������������� �������������������� �������������������������������������������� ��� 28/39
  30. 30. Ⅴ.�Cyclomatic� complexity�(9�-�after) ���������������� ������������������� ��������������������������� ������������������������������������������������������������� �������������������������������� �������������������������������������� �������������������������������������������������������������������������� ��������������������������������� ������������������������������������������������������������ ��� ������ ��� 29/39
  31. 31. Ⅵ.�Static�code�analyzer� (1) rubocop gem�install�rubocop rubocop�-R�>�rubocop.txt 30/39
  32. 32. Ⅵ.�Static�code�analyzer� (2) 31/39
  33. 33. Ⅵ.�Static�code�analyzer� (3) codeclimate https://codeclimate.com/ 32/39
  34. 34. Ⅵ.�Static�code�analyzer� (4) 33/39
  35. 35. Ⅶ.�Commit�messages� (1) good�commit�message�example 34/39
  36. 36. Ⅶ.�Commit�messages� (2) bad�commit�message�examples 35/39
  37. 37. Ⅶ.�Commit�messages� (3) bad�commit�message�examples 36/39
  38. 38. Ⅶ.�Commit�messages� (4) bad�commit�message�examples 37/39
  39. 39. How�to�write�good� commit�messages? Use�English Use�the�imperative,�present�tense:� “change”,�not�“changed”�or�“changes”;� “Fix�bug#1234”�is�better�than�“Fixed� bug�#1234” Use�50-char�title�and�Use�72-character� columns�for�word-wrapping. Read�more:�https://github.com/ torvalds/linux/ pull/17#issuecomment-5654674 38/39
  40. 40. Download�the�slides https://github.com/pmq20 39/39Powered�by�Rabbit�2.1.2

×