Be ¡a ¡Bold ¡Coder ¡
Beth ¡Tucker ¡Long ¡ @e3betht ¡
Be a Bold Coder Beth Tucker Long @e3betht Who am I? - - PowerPoint PPT Presentation
Be a Bold Coder Beth Tucker Long @e3betht Who am I? Beth Tucker Long (@e3betht) PHP Developer at Code Climate Stay-at-home
Beth ¡Tucker ¡Long ¡ @e3betht ¡
@e3betht
Who ¡am ¡I? ¡ Beth ¡Tucker ¡Long ¡ ¡ ¡(@e3betht) ¡
Code ¡Climate ¡
¡ ¡
@e3betht
Audience ¡ParIcipaIon? ¡
@e3betht
Why? ¡
@e3betht
Why? ¡
¡ ¡What ¡this ¡talk ¡is ¡not ¡
¡ ¡
@e3betht
Use ¡the ¡"S" ¡Word ¡
@e3betht
Use ¡the ¡"S" ¡Word ¡
Standards! ¡
@e3betht
Use ¡the ¡"S" ¡Word ¡
Wait, ¡mulIple ¡standards? ¡
@e3betht
PHP-‑FIG ¡
hVp://www.php-‑fig.org/psr/psr-‑1/ ¡ ¡ ¡
hVp://www.php-‑fig.org/psr/psr-‑2/ ¡ ¡
@e3betht
PHP ¡Coding ¡Standards ¡Fixer ¡
hVp://cs.sensiolabs.org ¡ ¡
@e3betht
PHP_CodeSniffer ¡
hVps://github.com/squizlabs/PHP_CodeSniffer ¡ ¡ ¡ ¡
@e3betht
Output ¡
$ ¡phpcs ¡/myDir/myFile.php ¡ FILE: ¡/myDir/myFile.php ¡
FOUND ¡3 ¡ERROR(S) ¡AFFECTING ¡3 ¡LINE(S) ¡
¡ ¡2 ¡ ¡| ¡ERROR ¡| ¡[ ¡ ¡] ¡Missing ¡file ¡doc ¡comment ¡ ¡20 ¡| ¡ERROR ¡| ¡[x] ¡PHP ¡keywords ¡must ¡be ¡lowercase; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡expected ¡"false" ¡but ¡found ¡"FALSE" ¡ ¡47 ¡| ¡ERROR ¡| ¡[x] ¡Line ¡not ¡indented ¡correctly; ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡expected ¡4 ¡spaces ¡but ¡found ¡1 ¡
@e3betht
IDEs ¡
hVp://www.sublimetext.com ¡ ¡ ¡
hVps://www.jetbrains.com/phpstorm/ ¡ ¡
hVp://www.vim.org ¡ ¡
@e3betht
Use ¡the ¡other ¡"S" ¡Word ¡
@e3betht
Use ¡the ¡other ¡"S" ¡Word ¡
¡ Security ¡
@e3betht
Security ¡
PHP_Security_Cheat_Sheet ¡
¡
hVps://leanpub.com/securingphp-‑coreconcepts ¡ hVps://speakerdeck.com/ccornuV ¡ ¡ hVp://securingphp.com ¡ ¡
@e3betht
Test ¡Your ¡Code ¡
A ¡liVle ¡bit ¡of ¡extra ¡work ¡up ¡front ¡ saves ¡lots ¡and ¡lots ¡of ¡work ¡later ¡on. ¡
@e3betht
Need ¡Help ¡with ¡TesIng? ¡
Chris ¡Hartjes ¡ ¡ @grmpyprogrammer ¡ ¡ hVp://grumpy-‑learning.com ¡ ¡
@e3betht
Use ¡a ¡TesIng ¡Framework ¡
PHPUnit ¡ hVps://phpunit.de ¡ ¡
@e3betht
¡ ¡
Document ¡Your ¡Code ¡
Make ¡sure ¡everyone ¡knows ¡ what ¡your ¡code ¡is ¡doing… ¡ including ¡you. ¡
@e3betht
¡ ¡
Document ¡Your ¡Code ¡
phpDocumentor: ¡hVp://www.phpdoc.org/ ¡ ¡ ¡
hVp://manual.phpdoc.org/HTMLSmartyConverter/ HandS/phpDocumentor/ tutorial_phpDocumentor.howto.pkg.html ¡ ¡
¡ ¡
/** ¡ ¡ ¡* ¡Put ¡your ¡short ¡descripIon ¡here. ¡ ¡ ¡* ¡ ¡ ¡ ¡* ¡Put ¡your ¡long ¡descripIon ¡here. ¡ ¡ ¡ ¡* ¡You ¡may ¡use ¡mulIple ¡lines. ¡ ¡ ¡* ¡You ¡can ¡even ¡use ¡Markdown. ¡ ¡ ¡* ¡ ¡ ¡* ¡@author ¡ ¡Beth ¡Tucker ¡Long ¡<beth@musketeers.me> ¡ ¡ ¡* ¡ ¡ ¡* ¡@since ¡1.0 ¡ ¡ ¡* ¡ ¡ ¡* ¡@param ¡int ¡$exampleA ¡ ¡This ¡is ¡a ¡method ¡parameter ¡descripIon. ¡ ¡ ¡* ¡@param ¡string ¡$exampleB ¡This ¡is ¡another ¡example. ¡ ¡ ¡*/ ¡¡ ¡
@e3betht
Know ¡Your ¡Language ¡
¡ ¡
¡ ¡
¡ ¡
¡ ¡
@e3betht
Know ¡Your ¡Framework/Library ¡
hVps://github.com/ ¡ ¡
@e3betht
Know ¡Your ¡Framework/Library ¡
hVps://github.com/ ¡
@e3betht
Checking ¡Code ¡
Sensio ¡Insight ¡ hVps://insight.sensiolabs.com/ ¡ ¡
code ¡
and ¡Composer ¡dependencies ¡
@e3betht
Checking ¡Code ¡
ScruInizer ¡ hVps://scruInizer-‑ci.com/ ¡ ¡
checking ¡tools ¡like ¡ PHP_CodeSniffer ¡and ¡PHP ¡ Mess ¡Detector ¡ ¡
Ruby ¡
@e3betht
Checking ¡Code ¡
Code ¡Climate ¡ hVps://codeclimate.com/ ¡ ¡
coming ¡soon ¡-‑ ¡Python ¡
codeclimate.com/security ¡ ¡
¡ ¡
@e3betht
Learn ¡by ¡Reading ¡
hVp://www.phparch.com/magazine/ ¡ ¡ ¡ ¡ hVp://www.phptherightway.com ¡ ¡ ¡ hVp://phpdeveloper.org ¡ ¡ ¡ ¡ ¡
@e3betht
Learn ¡by ¡Reading ¡
hVps://leanpub.com ¡ ¡ ¡ Amazon ¡ ¡ Your ¡local ¡library ¡ ¡ ¡ ¡
@e3betht
Learn ¡by ¡Watching ¡
hVp://nomadphp.com ¡ ¡ hVps://www.youtube.com/user/phpukconference ¡ hVps://www.youtube.com/user/phpacademy/ ¡ ¡ hVp://www.pluralsight.com/ ¡ hVps://www.youtube.com/user/LevelUpTuts ¡ ¡ ¡
@e3betht
Learn ¡by ¡InstrucIon ¡
hVp://www.phparch.com/training/ ¡ ¡ hVp://www.zend.com/services/training ¡ ¡ hVp://www.codecademy.com/en/tracks/php ¡ ¡ ¡ ¡ ¡
@e3betht
Learn ¡by ¡Listening ¡
hVp://devhell.info ¡ ¡ hVp://looselycoupled.info ¡ ¡ hVp://phptownhall.com ¡ ¡ hVp://thatpodcast.io ¡ ¡ ¡ ¡ ¡
@e3betht
Learn ¡by ¡PracIcing ¡
hVps://laracasts.com/series/code-‑katas-‑in-‑php ¡ ¡ hVp://codingdojo.org/cgi-‑bin/index.pl? KataCatalogue ¡ ¡ hVp://phpcodepad.com ¡ ¡ ¡
@e3betht
Learn ¡by ¡Email ¡
hVp://securingphp.com ¡ ¡ hVp://www.phpweekly.com ¡ ¡
@e3betht
Learn ¡by ¡Hanging ¡Out ¡
Freenode ¡ ¡ hVps://webchat.freenode.net ¡ ¡ ¡ #phpc ¡ #phpwomen ¡ #phpmentoring ¡
@e3betht
Learn ¡by… ¡
@e3betht
Learn ¡by… ¡
Mentoring ¡
@e3betht
Find ¡a ¡Mentor ¡
hVp://phpmentoring.org ¡ ¡ hVp://www.slideshare.net ¡ hVp://www.joind.in ¡ hVp://php.net/conferences/ ¡ hVp://nocapes.net ¡ ¡ hVp://voicesotheelephpant.com ¡ ¡ ¡ ¡
@e3betht
Find ¡an ¡ApprenIce ¡
hVp://phpmentoring.org ¡ ¡ ¡ IRC ¡Channels ¡ Stack ¡Overflow ¡ Reddit ¡ ¡
@e3betht
User ¡Groups ¡
hVp://php.ug ¡ ¡ hVp://php.net/cal.php ¡ ¡ hVp://www.meetup.com ¡
@e3betht
User ¡Groups ¡
If ¡there's ¡not ¡one ¡near ¡you, ¡ start ¡one! ¡
¡ (and ¡ask ¡me ¡to ¡help) ¡ ¡
@e3betht
Speak! ¡
hVp://rosstuck.com/Ips-‑on-‑speaking/ ¡ ¡ hVp://maVhewturland.com/2014/07/15/speaking-‑ resources/ ¡ ¡ hVp://afilina.com/re-‑how-‑to-‑submit-‑to-‑conf/ ¡ ¡ hVp://www.aliVleoxoth.com/2014/01/how-‑to-‑ submit-‑a-‑talk-‑to-‑a-‑conference/ ¡ ¡ ¡ ¡
@e3betht
Speak! ¡
hVp://php.net/conferences ¡ ¡ hVp://joind.in/event/callforpapers ¡ ¡ hVps://twiVer.com/callbackwomen ¡ ¡ ¡ ¡
¡ ¡
Resources ¡ ¡
pracIces ¡
beginners-‑-‑net-‑6194 ¡
modern-‑php-‑development ¡
must-‑follow/ ¡
pracIces-‑2015/ ¡
¡ ¡ Final ¡Thoughts ¡ ¡ Bold ¡coding ¡is, ¡of ¡course, ¡about ¡knowledge ¡and ¡ skill, ¡but ¡more ¡importantly, ¡it's ¡about ¡being ¡acIve: ¡ ¡
AcIvely ¡Learning ¡ AcIvely ¡ParIcipaIng ¡ ¡ AcIvely ¡Improving ¡
¡ ¡
@e3betht
Find ¡Me ¡
¡
hVp://www.madisonphp.com ¡ ¡ ¡
hVp://www.TreelineDesign.com/slides ¡ ¡
@e3betht
Feedback ¡
hVps://joind.in/13386 ¡ ¡ ¡ ¡ ¡ E-‑mail: ¡ Beth@CodeClimate.com ¡ ¡