Graham Campbell zo Spojeného kráľovstva je zakladateľom StyleCI, Graham je členom Core tímu Laravel a tiež poskytuje softvérové konzultačné/inžinierske služby mnohým klientom so sídlom v Spojenom kráľovstve a USA. Graham je tiež známy svojou prácou s otvoreným zdrojom v komunite Laravel.
Shahzeb: Dobrý deň, Graham. Ďakujem, že ste si našli čas na tento rozhovor. Skôr ako začneme, mohli by ste nám povedať niečo o sebe, aby vás naši čitatelia mohli lepšie spoznať?
Graham: Ďakujem za pozvanie na tento rozhovor. Som softvérový architekt a inžinier so sídlom vo Veľkej Británii. Ľudia ma môžu poznať z mojej open source práce v PHP komunite. Pracujem na plný úväzok pre svoju vlastnú spoločnosť, pracujem na produkte SaaS StyleCI a tiež poskytujem softvérové konzultačné/inžinierske služby klientom väčšinou so sídlom v Spojenom kráľovstve a USA. Samozrejme, veľa času trávim aj prácou na open source. Hoci veci môžu byť zložitým balansovaním!
Shahzeb: Podeľte sa o svoju doterajšiu cestu s Laravel? Nejaký príbuzný zážitok z vašej kariéry, ktorý vás zaujal a chceli by ste sa oň podeliť s našim publikom? Chceli by ste našim čitateľom povedať o niektorých z najlepších projektov Laravel, na ktorých ste pracovali?
Graham: Laravel som prvýkrát objavil pri Googli PHP frameworku začiatkom roku 2013. Laravel 4 bol práve pred vydaním, čím položil základy Laravelu, ktorý dnes všetci poznáme a milujeme.
Jedna z prvých vecí, ktoré som urobil, bolo vyskúšať a vytvoriť základný CMS pomocou Laravelu, ktorý sa stal pomerne populárnym (relatívne povedané!). Licencoval som to na základe licencie AGPL, aby sa kódová základňa mohla primárne použiť ako vzdelávací zdroj. Práve pri tom som začal rozbiehať rôzne balíčky Laravel a zapojil som sa do prispievania k jadru frameworku. Vždy je pekné mať na mysli konkrétny prípad použitia, ktorý riadi vývoj balíkov a rámca, a nie abstraktný imaginárny projekt.
Teraz udržiavam alebo spoluspravujem mnoho projektov OSS vo viac ako 20 organizáciách. Pred niekoľkými rokmi som prevzal výhradnú údržbu projektu phpdotenv, analyzátora súborov .env, ktorý používa Laravel. Tobias Nyholm a teraz som spoluúdržbármi veľmi populárnych HTTP klient Guzzle, a nedávno zachránili opustenú, ale populárnu knižnicu PHP Faker, naverbovaním nového základného tímu pozostávajúceho zo zmesi dlhoročných správcov OSS a talentovaných inžinierov, novších až po open source. Je celkom skvelé vidieť, že guzzlehttp prekročil 1 miliardu stiahnutí v rámci organizácie a phpdotenv prekročil hranicu 200 miliónov stiahnutí.
Shahzeb: Špecifický pre Laravel, akým hlavným výzvam ste čelili na začiatku svojej kariéry a ako ste sa s nimi popasovali?
Graham: Ako je to často v prípade open source, čas správcu sa čoraz viac prideľuje na údržbu, kontrolu PR a správu nástroja na sledovanie problémov. To je niečo, s čím som sa veľa zaplietol v prvých dňoch Laravelu. Správa nástroja na sledovanie problémov naozaj nie je vtip a bola to pre mňa ostrá krivka učenia. Vďaka Taylorovmu obchodnému talentu a rozvoju Forge ako plateného SaaS netrvalo dlho a Laravel bol schopný zamestnať Driesa Vintsa na plný úväzok, ktorý bol schopný odviesť oveľa lepšiu prácu ako ja pri správe nástroja na sledovanie problémov. Odvtedy Taylor a zamestnanci Laravelu spustili viac platených produktov a rozšírili podnikanie, takže Laravel má pred sebou svetlú budúcnosť so silným základným tímom a pravdepodobne ešte silnejšou komunitou.
Shahzeb: Ste zakladateľom StyleCI. Aké služby poskytujete v StyleCI a čo vás motivovalo k vytvoreniu StyleCI? Pôsobíte aj ako softvérový konzultant. Môžete nám aj o tom povedať viac?
Graham: StyleCI bol vytvorený z nutnosti automaticky aplikovať konzistentné formátovanie štýlu kódu v mnohých projektoch s otvoreným zdrojovým kódom vrátane balíkov Laravel s menným priestorom pod mojím osobným účtom GitHub a Laravel/framework repo. Odstránením potreby inštalovať a aktualizovať nástroje a dokumentovať, ako ich používať, sa odstránila masívna bariéra prispievania, čo nám umožnilo automatizovať aplikáciu opráv štýlu kódu po zlúčení PR. StyleCI automaticky zaväzuje svoje opravy po zlúčení PR!
StyleCI začal iba ako PHP 5 a podporoval iba repozitáre github.com s otvoreným zdrojom. Akonáhle sa veci začali trochu chytať, bola predstavená platená podpora pre súkromné úložiská github.com, nasledovala podpora pre PHP 7, podpora pre gitlab.com a bitbucket.org, podpora pre CSS, SCSS, Javascript, Typescript, React, Vue a Python, nástroj CLI na spustenie analýzy miestneho kódu StyleCI, podpora pre PHP 8.0, podpora podpisovania odovzdania a najnovšie aj podpora beta pre PHP 8.1. Zavedenie lokálneho nástroja CLI bolo v rozpore s mojím pôvodným cieľom pre StyleCI. Zákazníci ma však presvedčili, že to bol dobrý nápad, a teraz, keď podporujeme viac ako len PHP, stále to vyhovuje existujúcemu účelu vyhnúť sa inštalácii a konfigurácii viacerých lokálnych nástrojov a riešiť rôzne výsledky analýzy kvôli rôznym verziám runtime. na rôznych počítačoch. Je to spôsobené skutočnosťou, že analýza stále prebieha „v cloude“, pričom nástroj CLI komunikuje iba rozdiely medzi miestnym stavom a známym vzdialeným stavom a ako výsledok potom aplikuje rozdiel. Sám viem používať nástroj CLI a som rád, že som ho pridal.
Aj keď sa prostredie CI za posledných 7 rokov veľmi zmenilo, najmä GitHub
Akcie prichádzajúce na stôl, StyleCI je dnes stále rovnako relevantný ako vždy. GitHub
Akcie sa stále nemôžu priblížiť k jednoduchosti nastavenia a údržby, ktorú poskytuje StyleCI,
ani rýchlosť dokončenia analýz. StyleCI je často dokončený pred GitHub
Úlohy akcií sú dokonca vyradené z frontu a nie je potrebné znova sťahovať všetky opravy štýlu kódu
knižnice a vyrovnávacie pamäte pri každom spustení, čo má ďalší vedľajší účinok na zníženie CO2
emisie analýzy – niečo, čo je pre mňa dôležité. StyleCI sa snažíme prevádzkovať v a
uhlíkovo negatívnu módu, takže aj pri výrazne skrátenom výpočtovom čase to kompenzujeme
viac a využívam túto príležitosť, aby som bez hanby zapojil charitatívnu organizáciu podporovanú StyleCI, Chráňte Zemcharitatívna organizácia so sídlom v Spojenom kráľovstve zameraná na opätovné zalesňovanie
naozaj skvelá práca. Mohol som sa zúčastniť na údržbe stromov na ich stránke Howard Court
na začiatku tohto roka. Vidím, že ste vlastne 13. decembra robili rozhovor s Phillom Sturgeonom, ktorý je
zakladateľ charity.
Pre tých, ktorí majú záujem, v zákulisí sa StyleCI väčšinou skladá z niekoľkých aplikácií Laravel
(žiadne prekvapenia!) a beží na kombinácii DigitalOcean a AWS s Cloudflare
poskytovanie DNS hostingu spolu s ich CDN a bezpečnostnými službami. Predaj globálne je
umožnilo to partnerstvo so spoločnosťou Paddle, ktorá pôsobí ako predajca a preberá daň z obratu a
DPH, čo je obrovská vec. Držať krok s neustálymi zmenami miestnych daňových zákonov je
nie ako chcem tráviť svoje dni. Existuje toľko regiónov s nulovou registráciou
prah, bola by to absolútna nočná mora. Nemôžem ich dostatočne odporučiť pre ostatných
malé spoločnosti SaaS!
Shahzeb: Ste neoddeliteľnou súčasťou základného tímu Laravel. Môžete nám povedať niečo viac o
úlohu, ktorú musíte hrať v tíme, a popis vašej práce?
Graham: Po prvé, aby som to objasnil, nie som zamestnancom Laravel a nepracujem v Laravel na plný úväzok. Som celkom spokojný s tým, kde sa rámec nachádza, a v poslednej dobe som necítil potrebu prispieť nejakým významným refaktorom alebo funkciou, ktorá by patrila do jadra rámca. To neznamená, že ostatní nie – väčšinu času teraz trávim prácou na kontrole kódu alebo prácou na balíkoch PHP/Laravel tretích strán. Som nesmierne vďačný svojim sponzorom GitHub za to, že mi umožnili každý týždeň venovať čas open source:
https://github.com/sponsors/GrahamCampbell.
Shahzeb: Máte rozsiahle znalosti o vývoji Laravelu. Aká bola vaša reakcia, keď vás pozvali do základného tímu Laravel? Čo vás motivovalo stať sa webovým vývojárom Laravel?
Graham: Bolo mi cťou a bolo to užitočné aj z praktického hľadiska, čo mi umožnilo pomôcť s riadením problémov a zlučovaním pobočiek. Môj objav Laravel bol čisto náhodný, keď som sa tam dostal cez vyhľadávanie Google v roku 2013 potom, čo som sa pár mesiacov hral s PHP a písal naozaj hrozný kód. Keď sa na to pozriem spätne, nič by som nemenil – učenie sa tvrdým spôsobom je jedným z najlepších spôsobov učenia sa, uvedomenie si, ktorý kód by sa mal písať od začiatku a ktorý nie, a objavovanie osvedčených postupov a návrhových vzorov neskôr vyhľadať ich a vidieť, že sú naozaj vecou, alebo ich vidieť v inom kóde a rozpoznať vzory!
Shahzeb: Aké nástroje používate počas vývoja Laravelu? Aký je váš pracovný postup?
Graham: Neoznačil by som sa ako vývojár Laravel, nevyhnutne – používam ten správny nástroj na túto prácu. Ekosystém Laravel prvej strany je jedným z najlepších, ak nie najlepším, aký som kedy videl pre rýchle prototypovanie webových aplikácií, a Composer robí z PHP veľmi robustnú voľbu pre systémy a aplikácie všetkých veľkostí. Denne jazdím na MacBooku Pro so Sublime Text ako môj obľúbený editor.
Shahzeb: Aký typ webhostingu by ste uprednostnili? Aké sú podľa vás výhody hosťovania stránky u poskytovateľa spravovaného riešenia namiesto bežného zdieľaného hostingu? Čo si myslíte o riešeniach spravovaného hostingu, ako sú DreamHost, ktoré poskytujú optimalizovaný zásobník PHP s funkciami na nasadenie ich webových aplikácií?
Graham: Sme v roku 2022 (áno, skontroloval som to!). Akýkoľvek mýtus o tom, že je to nákladovo efektívne alebo že môžete robiť lepšiu prácu, keď robíte všetko vo vlastnej réžii, je zvyčajne hromada odpadu (v závislosti od vášho odvetvia!). Cloud zmenil všetko, nielen s IaaS, ale aj s PaaS a SaaS. Zhodou okolností je PHP veľmi vhodné pre bezserverové dizajnové paradigmy a máme naozaj skvelé možnosti na výber – Bref on AWS Lambda je naozaj skvelá voľba pre tých, ktorí potrebujú veľkú flexibilitu a kontrolu nad ich nasadením. . Služby ako DreamHost poskytujú menej flexibilný, ale viac riadený prístup, skvelú voľbu pre spustenie konvenčných a mnohých bežne dostupných PHP aplikácií, najmä vzhľadom na náklady a dostupnosť dobrých vývojárov Dev Ops na dnešnom trhu.
Shahzeb: Môžete nám povedať o výraznom zlepšení Laravel 9 oproti predchádzajúcim verziám? Komunita je plná potenciálu funkcií, ktoré budú predstavené v najnovšej verzii. Aké sú vaše očakávania od Laravel 9?
Graham: Laravel 9 je väčšinou vydanie, ktoré nám umožňuje vykonať nejaké prelomové zmeny a upgradovať na komponenty Symfony 6, prejsť zo Swift Mailer na Symfony Mailer a upgradovať na Flysystem 2. Takmer každá nová funkcia pristála v Laravel 8, s novými funkciami. takmer každý týždeň za posledný rok. S Driesom a mnohými ďalšími sme tvrdo pracovali na tom, aby Laravel 8 a jeho podporné balíky fungovali na PHP 8.1, takže nie je potrebné čakať, kým Laravel 9 upgraduje na PHP 8.1, čo je super cool.
Shahzeb: S kým by sme mali urobiť ďalší rozhovor a prečo?
Graham: Myslím, že rozhovor s Nunom Madurom by bol skvelý nápad. Pracuje na Laravel na plný úväzok, ale má niekoľko skutočne zaujímavých vedľajších projektov, vrátane Pestu, ktorý minulý rok vyletel ako raketa!
Shahzeb: Graham, som si istý, že veľa ľudí si urobilo poznámky. Som si tiež istý, že by radi videli obrázok vašej pracovnej stanice, ak by ste sa oň chceli podeliť!
Shahzeb: Ešte raz vám ďakujem, Graham!
×