Историята на един програмист на PHP

Програмист – размисли на един опитен човек

Когато става въпрос за програмиране извън работата по уеб дизайн задачите и, по-специално, за разработване на уеб приложения, е важно да се вземат предвид всички вече написани инструменти, да се изберат точно тези, от които имате нужда, за да се свърши работата качествено и бързо.

Историята на един програмист

Да започна с това, че съм уеб програмист, още откакто бях на 13 години, минаха 11 години оттогава.

Започнах с един прост език, наречен HTML, който еволюира в дълги безсънни нощи в търсене на отговор, използвайки Javascript mouseovers, PHP броячи, след което навлязох в сложния свят на MySql, запазвайки информацията от моите форми, и най-накрая в CSS. Оттогава правя и успешни сайтове, че така до ден днешен.

В ретроспекция, научаването на CSS беше може би най трудното дотогава, докато науча всички технологии, които се изискват – опитвайки да забравя писането на тагове. След като CSS беше инсталиран, се „екипирах” с XHTML 1.0 и започнах да навлизам в по-enterprise езиците, започвайки от Java, .NET и дори малко Perl.

Да направим една малка пауза, защото тук взех може би най-важното решение в своята кариера Това бяха цели три години, работейки за компания Tantalus – голям Java Workshop. Тук изпих своята първа чаша Java, повярвайте, не беше лесна за преглъщане!

Брат ми Мартин, който също работеше за Tantalus като системен администратор, администрирайки техните невероятни Sun сървъри, продължи да ме подбутва да науча Java с обещанието, че ако взема BCIT I курса, мога да започна от 45-60 хиляди заплата директно след завършването на училище. Дори ми даде безплатни книги, които още държа на библиотеката си, събиращи прах. Дори по-важно, даде ми цялото класово дърво на Java, изумявайки ме тотално. Гледайки многобройните библиотеки, можете да направите всичко на Java.

Тук лежи и моят проблем. Java е швейцарското ножче на уеб програмистите, ако някога решите въобще да я научите. Можете да направите почти всичко – от приложения за мобилни телефони до напълно завършени desktop апликации. Невероятен език, но той е просто огромен. Държах постера на стената си месеци, може би дори година, преди да дойде моментът да го сваля.

PHP беше страхотно. С излизането на PHP 4 със своята първобитна обектова функционалност започнах да развивам моето обектно-ориентирано мислене.

Правех някои невероятни CMS, DAMS, дори и WTPS. Моята предишна отдаденост към Java пропадна към света на PHP. Виждайки как мога да направя тези невероятни неща, беше лесно решение да избера пътя, по който да тръгна.

Продължих да развивам знанията си в областта на PHP, навлизайки във вътрешността, мечтаейки да пиша малко core функционалност. Евентуално трябваше да се запозная със създателя на PHP (Rasmus Lerdorf) във Ванкувър на конференция, която помогнах да организират през далечната 2004 година.

Когато започнах да виждам бета код на PHP5, бях наистина развълнуван. Принципите на обектно ориентираното програмиране прераснаха в любов, те бяха напълно интегрирани и поддържани от езика и осъзнавах, че има много малко неща, които всъщност мога да направя с него. Това върна Java обратно в списъка ми от технологии, които трябва да науча на този етап. Едно от единствените неща, които виждам в използването на Java, е Drag&Drop uploader-a.

Във всички други случаи PHP беше моят избор. На този етап имаше невероятно много библиотеки, почит колкото тези в Java. Да не споменаваме WAYYY и повечето open source projects на sourceforge.net, на което Java не може дори и да се надява. Светът поддържаше езика, точно така направих и аз!

Но… Имаше проблем. След направата на тези страхотни системи направих някои невероятни неща. Накрая осъзнах, че пиша едни и същи неща отново и отново. Правех обекти, които имаха get&set методи без обекти с вкоренени CRUD принципи.

Започнах да унифицирам моя подход, създавайки save метод, който правеше и update, и create в зависимост от вида на обекта, централизиран storage за обекти и входен механизъм за всичката информация без наличието на каквато и да била база от данни.

Това беше невероятен период в моята кариера. Осъзнавах, че навлизах в път, които ми позволяваше да създавам обекти и да достигам до полета, създадени в базата, без да навлизам в излишни подробности на това, което всъщност се случва „отвътре”, създавайки модела автоматично. Осъзнавайки продуктивността, продължих да работа над това. Това продължи много време, докато един ден не се случи нещо, което промени цялата ми кариера.

Намерих този невероятен framework, наречен „Ruby on Rails”. Първоначално бях невероятно разочарован. Има толкова много хора, които работят всекидневно, за да направят нещо важно толкова години, междувременно опитвайки се да платят сметките, виждайки tool-a, който разработват, вече написан от някого другиго, еволюирал вече в нещо много по-голямо.

Това е доста неприятен момент, след което започнах да се вглеждам в framework-a по-надълбоко. След което реших, че няма никакъв смисъл да събирам отделните парченца на PHP, след като го има вече написано на друго. Прост избор – научете нов език и framework и спестете стотици часове на писане – това е моят съвет към всички вас.