Как Counter Strike сделал меня веб-разработчиком и как я открыл свою веб-студию
Я, как и многие подростки, начинал свой путь с компьютерных игр, вернее с видеоигр, тогда еще компьютеры не были настолько популярными. Да, я про те времена, когда мы зависали, играя в приставку SEGA и у нас горели блоки питания от перегрева, кто в теме, тот поймет =)
До стационарника у меня было еще пару приставок, но мы не об этом =), так вот как у меня появился компьютер, я, как и многие, внес огромный вклад в борьбу с террористами в мире Counter Strike, да и именно CS сделала меня Web разработчиком.
Так как своего PC у меня еще не было, мне приходилось прогуливать школу, в компьютерном клубе, а для этого нужны были деньги, я решил совместить приятное с полезным и собрал свой клан, чтобы выигрывать в соревнованиях и зарабатывать на этом. Я очень серьёзно подошел к этому, собрав свою команду и после упорных тренировок, мы начали выигрывать один кланвар за другим, после чего нам нужно было куда-нибудь публиковать свои победы.
Кстати, а компьютер у меня появился за счет того, что родители узнали о прогулах в школе и вместо того, чтобы отругать как следует, они купили мне домашний компьютер, взамен на хорошее поведение в школе, чем я был крайне доволен.
После чего без каких-либо знаний в программировании, я открываю свой первый сайт в 15 лет, на конструкторе UCOZ для моего клана.
Когда я начал создавать табличную сетку, мне пришлось учить HTML, в то время информации было немного. Были популярны форумы, на которых можно было получить хоть какой-то фидбэк. В общем прокачивая свои навыки в HTML, CSS и совсем немного в <del>JS</del> jQuery, я начал понимать, что на конструкторе есть множество ограничений, и мне нужен полноценный сайт — пришло время переходить на хостинг.
В то же время я узнал о существовании CMS и мой выбор пал на Joomla. Установив его на первый попавшийся бесплатный хостинг, с доменом 3-го уровня, я принялся за <del>разработку дизайна</del> поиск подходящего шаблона. Это все доставляло мне куча проблем, а на решение некоторых задач уходили недели, после чего я потихоньку принялся изучать PHP.
Это привело меня к SEO. Правда тогда SEO был другим, оплатив арендные ссылки и прописав в мета тег «keywords» всевозможные ключи, сайт мог выйти в топ за очень, очень короткий срок времени. После чего мой знакомый обратился с просьбой разработать ему сайт для предоставления авто услуг. Я без раздумья согласился и выполнил работу в кратчайшие сроки. Как я сдал сайт, за мою работу оплатили, я не был готов к такому и это меня осенило, то есть можно зарабатывать на создании сайта подумал я, и так мое хобби стало приносить деньги.
Некоторое время спустя, разработанный мною сайт для авто услуг вышел в ТОП по такой же схеме, которую я описывал выше. Выполнив еще пару заказов от знакомых, я твердо решил создать свой сайт, и он достаточно быстро вышел в ТОП по запросу разработка сайтов в моем регионе. Клиенты посыпались, приходилось многим отказывать, люди даже хотели у меня практиковаться, думая что они обращаются в огромную компанию, а я тем временем был на учебе в колледже, к тому же у меня не было своего офиса.
Недолго думая, я бросил учебу
- открыл свой офис,
- зарегистрировал ИП,
- купил кассовый аппарат,
- заказал печать,
- открыл счет в банке.
Далее я несколько месяцев болезненно переходил с Joomla на WordPress, переписывая все свои сайты, так как видел в нем больше потенциала.
Также я брался за некоторые крупные заказы, при этом понятия не имел как их делать, но я точно знал, что если не выполню данный заказ, меня засудят, ну или вы сами понимаете… И поэтому мне приходилось работать практически не вставая с компьютера, максимум это поесть, ну или по нужде.
Дизайн моего сайта менялся чуть ли не каждый месяц, так как все время меня что-то в нем не устраивало. И с каждым разом он становился лучше, оцените если не сложно https://init.kz/, это относительно новый сайт, так как сменил название при смене ИП на ТОО.
Были взлеты и падения, хочу расписать больше, но это уже в следующих статьях, подписывайтесь =)
В школе увлекался всем подряд: музыкой, разработкой игр (по сути, ковырянием игровых движков, типа Blitz3D), а потом увидел html-туториал в файлах WarCraft3...
Здравствуйте, меня зовут Серёжа, мне 35 лет и я пишу на PHP.
И как нравится? Я про php
А что не так с php?
Отличный язык, масса библиотек, масса фреймворков, хочешь говнокодь на yii и wordpress, хочешь чтобы все по феншую в стиле java вот тебе symfony.
Для веба у php сейчас альтернатив нет по сути.
Да что угодно может быть альтернативой php для веба
Это "что угодно" точно будет лучше?
Или в духе яндекса, мы используем node, чтобы все учили одно и тоже, хоть бэкендеры, хоть фронтендери?
По каким метрикам мерить будем?
Хотя нет, давай прям по верхам пройдемся. Напомни, как там у php дела с асинхронностью обстоят?
Асинхронность в PHP может быть нужна скорее всего для решения задач напрямую не связанных с ответами на запросы.
Но если вот прям очень хочется:
Сложный подход: сишный экстешн для асинхронности
Легкий (для выгрузок и пр): что-то вроде Symfony message bus и consumer'а по CRON
Оптимальный: микросервис на Go
Ну ты понимаешь что это все костыли и танцы с бубнами? Бэкенд можно и на ассемблере писать, только вот зачем?
Затем, чтобы ради небольшого модуля, не тащить новый стек в проект, а то и новых специалистов.
Ну это мы говорим про изначально php-шный проект. Если делать что-то с нуля - просто сразу можно брать другой язык и отлично себя чувствовать
У php просто море библиотек на любой случай жизни, любой другой язык потребует из-за этого больше человекочасов, если не человеколет.
А преимуществ у других языков и нет уже после появления той же семерки.
Так, вкратце - php отстой, .net рулит.
Продолжаем дискуссию)
П.С. да на php сейчас можно писать нормально и многие так делают, так что если вы вкладывались в изучение php и сопутствующих фреймворков ,то на икорочку вам хватит.
Особенно если пойдете на удаленочку на буржуев клятых и будете из них тянуть доллары,да в страну нашу богоспасаемую завозить - дабы поддерживать отчественные кофейные заведениями своими рублями, из долларов сконвертированными.
Да и нах в 21 веке вообще компилятор срался, когда пыха местами быстрее работает или также?
А причем тут компилятор? Он за меня занимается тем,чем я не хочу - гененирует оптимальный код под миллионы платформ.
Если вам интерпретатор милее - так и используете его)
Ну так это же лишняя трата вашего времени, сейчас разработчики стоят дороже железа.
Пока вы будете компилировать, на пыхе уже все тесты выполнятся.
По массе замеров, пыха давно net обогнала в скорости, компиляция это уже какой-то анахронизм получается.
Да и никогда язык не был узким местом производительности, 90% от базы зависит, потом от архитектуры, уже потом от языка, где-то на несколько процентов.
Компилятор времени отнимает мало,а дает много. Например, поддержку ошибок типов на этапе компиляции. И много других плюшек,с этим связанных.
С этим современная IDE справляется отлично за считанные доли секунд, сразу тыкая тебя носом.
Нет сейчас никаких плюшек у компиляторов, один геморрой.
У тебя аргументы из серии "мне нравится php потому что у php-шного IDE иконка красивее"
Ты не согласен с тем, что IDE отлично справляется с проверкой типов или что?
Не стремно минусы ставить тому, с кем споришь?
Фу таким быть
А проверку типов как php реализует?
Уж простите,сейчас даже js компилируется!) А уже потом интерпретируется (хотя в этом я уже не уверен).
PHP уже давно типизируемый, мало того есть declare(strict_types=1).
А где у вас JS компилируется? Нет, есть движки, компилирующие JS, но это уже отдельная история.
В чем заключается геморрой?
Время на компиляцию, сложнее отладка, ограничения в полиморфизме.
Какое время на компиляцию, ты пьяный чтоли? Чем сложнее отладка?
Ты ведь никогда не писал ни на чем, кроме php, верно?
Тебе ли про опьянение говорить, когда ты выше говорил о том, что в php нет строгой типизации?
На С++ много писал в свое время, java в теории знаю, за счет множества книг где на ней примеры приводятся.
Ты будешь спорить с тем, что отладка в интерпретируемом языке проще?
Объясни чем она проще-то?
В С# ты сможешь внедрить в продуктовый код функцию типа debug_backtrace, которая в случае чего запишет все в лог?
Насколько я понимаю, там это только в режиме отладке получится сделать.
У меня на проде C# пишет все в Seq и в Prometheus. Зачем внедрять в продакшн какие-то костыли я даже спрашивать боюсь
Всякое бывает в больших и старых проектах, php это может, а компилируемый язык нет.
Ну так это не показатель того, что на php удобнее отлаживать. Ты взял какой-то совершенно чудовищный синтетический говнокод-пример и тыкаешь им. В то же время доказывая, какой это удобный язык и как на нем легко не говнокодить
Слушай, ну не просто же так интерпритируемые языки получают такое большое распространение, тот же питон взять. В компиляторе смысла уже все меньше, если он вообще еще есть.
Питон получил распространение как язык для ML. Я не знаю кто в здравом уме будет пилить проект для веба полностью на питоне
Комментарий недоступен
Тогда php уже лет десять как компилируемый с opcache?
Комментарий недоступен
Наверное он все таки нас троллит. Не может быть столько кринжа в одном треде.
Нет,я его знаю давно. Товарищ просто заблуждается и при этом почувствовал в себе силу программиста.
Это очень хорошо, но это пройдет)
Очень рад за него.
Php действительно сейчас достойный язык и хорошо решает свои задачи.
Осторожные высказывания и сдержанны оценки враги дискуссии, никого не зацепишь, не узнаешь различные мнения.
Помимо компиляции, интерпретаторы сильны в отладке, динамическая типизация полезна бывает, полиформизм гибче и т.д.
Тут же не дело в том, что там под капотом, под капотом у грузовика и легковушке бывает один и тот же движок стоит, на использование то разное у конечного продукта.
А парни из php то и не знали об этом
root@glados:~$ docker run -ti --rm php:fpm-alpine3.15 php -m | grep "op"
openssl
https://github.com/docker-library/php/blob/master/8.1/alpine3.15/fpm/Dockerfile
ни в официально собранном контейнере командой php , ни в инструкциях по сборке контейнера нет упоминания opcache
То что за вас в неком $distrib_name кто то из мейнтейнеров его собрал и добавил в зависимости к метапакету php, совершенно не значит что "php уже лет десять как компилируется с opcache"
https://habr.com/ru/company/otus/blog/509598/
Я может что-то не понял или в php завезли компилятор?
opcache прокачали по сути, который там уже десяток лет
Бред сивой кобылы, там где нужен перфоманс, вы не уйдете далеко без сборки, иначе готовьте денюжки на оплату всех этих слоев абстракции. Дада питон так то свои инструкции в С фоном гонит ибо cpython интерпретатор никуда не делся
Я же не говорю, что компиляторы умрут, я говорю, что в вебе для высокоуровневой логики они не нужны.
А для низа там скорее компилятор С нужен, а не С#
Еще раз, на всякий случай, я только про веб рассуждаю.
Опять мимо, если вы себе сделали на пыхе полтора магазина, это не значит что весь веб сидит на нем, а даже те кто сидит (тот же деливери) сьезжают с пыха на go, либо ваяют перед ним свой JIT, например HHVM от Facebook и kPHP от ВК, при этом тот же ФБ плавненько сваливает на свой язык hack (это видно по последним релизам HHVM)
А вы говорите "не нужны")
Да никто не сваливает с пыхи, на go делают небольшие микросервисы, зачем глупости писать?
JIT по сути тот же OPCache, который на пыхе есть уже лет десять, а в php 8 JIT уже из коробки идет.
Пыха активно развивается и впитывает в себя все, что нужно сообществу.
Вообще нет)))
JIT не нужен никакой Zend VM в отличие от OPCache
Вам лишь бы поспорить? Я же про суть говорю, а не про реализацию.
ну если вы считаете что k8s - это только "небольшие микросервисы" то не буду ваши глупости разрушать)
Ну хз, назвать k8s веб приложением....
C# сейчас как раз в вебе очень силен. Используется где-то в промежутке между ядром проекта на Java и фронтом.
Или как веб-сервис изначально.
Еще есть такая штука как бекенд-на-фронтенде (могу ошибаться) - это когда для react клиента делают nodejs сервис с апи,которым заведует команда фронтов.
А уже дальше идет обращение к условному сервису на C#.
node.js это полноценный бэкенд, ему уже ничего особо не нужно, это для тех, кто хочет бэкенд на javasript (чаще TypeScript) писать
Да, но ноду сейчас пихают как бекенд для фронта - который пробрасывает АПИ запросы от фронта к беку (основному,написанному например на том же C#).
Нужен для того чтобы не перепиливать основной бек из-за вечных хотелок фронтовиков.
Ну так он и в пыху также может кидать все, этот аргумент мимо
Вы описали классическую разработку в любой более-менее развитой компании, да там просто делят фронт и бэк на старте (в тч могут разделять и команды разработки) под бэк может идти что угодно - java, python, nodejs, .net, etc. Фронт (если нет легаси клиентов) делают на реакте/ангуляре
Собсно второй теребонькает апишечку первого и делов)
Ваши, ничем не подкрепленные, рассуждения это типичный пример эффекта Даннинга — Крюгера.
Культура программирования у товарища хромает, но это ничего.
Главное,что он наш - программист!
Это не говоря о том, что с помощью докера и k8s я могу поднять у себя на локале продуктовое окружение и потыкать брейкпоинтами код в IDE. Это если совсем уж припрет
Я имел в виду опыт промышленной разработки.
Ну так и ты на пыхе походу не писал, раз глупости про типизацию пишешь.
В том-то и дело что приходилось писать на php в промышленных масштабах
Давно видимо это было, очень давно...
Отладка проще,ага))
Еще только 100% покрытием тестов не забудьте покрыть ваш кодец,так как вам вместо типа А пришлют тип Б , ваш интерпретатор это схавает,а вы будете с отладчиком искать а где-же там ошибка то.
Ну о чем с вами разговаривать, если у вас познания о php десятилетней давности?
declare(strict_types=1); и будет вам строгая типизация.
А строгая типизация будет за счет чего обеспечиваться?
Там же нет магии. Все равно значит компиляется где-то.
На лету все IDE делает, а пыха уже когда столкнется выкинет ошибку.
Так это разве не компилятор делает? Тем более в PHP он оказывается есть
В PHP нет компилятор как в C#, JIT это кэш интерпритатора по сути, чтобы одну работу дважды не делать если исходники не менялись.
Он остался 100% интерпретатором, может php код из базы взять и исполнить на лету.
А как современная IDE с этим справляется без компилятора?
Она именно что компилирует программу внутри себя и выдает результат. И делает еще много-много других оптимизаций.
Ну так мне какая разница как IDE это делает, если я не испытываю неудобств компилятора?