• Почему не взлетел портал недвижимости. Часть 1
    0
    пишите больше, а то каждый раз только затравка :)
  • Успехи и неудачи при создании своего проекта (стартапа)
    0
    Это всё? я думал «это — только присказка, сказка — впереди», сказка в следующих сериях?
  • Gitpab. Приятно познакомиться
    0
    тогда ок.
  • Gitpab. Приятно познакомиться
    0
    Вся система держиться на доверии тем числам которые разрабы впишут в графу «затраченное время»?
    Есть где то контроль что в сутки по всем задачам было затрачено не более 24 часов?

    Шикарный инструмент конечно. Просто пользовательскому вводу сложно верить, хочется его как то валидировать.
  • [лонгрид] 20 лет программистской карьеры в большом маленьком городе
    0
    Живой ум требует новых задач. Это характер человека, а не навык. С возрастом желание экспериментов и перемен пропадает, это нормально.
  • [лонгрид] 20 лет программистской карьеры в большом маленьком городе
    +2
    «Брат я с тобой», хотелось написать в процессе чтения статьи, но потом вспомнил что я лет на 10-15 помладше :))
    Менять работу, это нормально, не дай себе заскучать!
    Вы всё правильно делаете.
  • Рассказ о том, как не надо проектировать API
    0
    По ссылке которую вы даёте на стандарт ISO 8601 написано:
    "
    The hyphens can be omitted if compactness of the representation is more important than human readability, for example as in

    19950204
    "
    Вызов АПИ будет принимать сервер, ему человекочитаемый вид данных до лампочки, а компактность — может пригодиться, запись даты и времени без знаков препинания это в рамках стандарта ISO 8601.

    По оформлению документации — у них просто устаревший визуальный стиль, не вижу в этом ни чего страшного.

    В целом хорошая статья. Спасибо.
  • Обзор 27” IPS монитора Acer HA270bid: для самостоятельной доработки
    0
    Для настройки моника всегда пользовался встроенными средствами Windows, ест там настройка гаммы для моника и она включает в себя настройку яркости и контрастности.
  • 5 простых правил удобного для восприятия кода
    0
    Вам намекают что овчинка не стоит выделки. Вероятность того или иного варианта зависит от использования кода, от пользовательских привычек, от характера данных, со временем это меняется.

    Не надо тратить время на преждевременную оптимизацию.
  • Обзор 27” IPS монитора Acer HA270bid: для самостоятельной доработки
    0
    у знакомого крепление моника подвешано к стойке стола, точно так же как было бы подвешано к стене, у него стол — стеллаж
  • 5 простых правил удобного для восприятия кода
    0
    +1, именно.
  • 5 простых правил удобного для восприятия кода
    +1
    Я когда первый раз увидел тоже ругался на индусов, но потом (через пару лет) сам к этому пришёл. Флаг же обычно один и код метода не такой длинный что бы сбиться со счёта.
    Кто к чему привык. Для меня множественные ретурны — это предельная степень ада.
  • 5 простых правил удобного для восприятия кода
    +1
    Холливарная статья. Направление мысли конечно правильное, с большинством предложений согласен и всегда на код ревью требую соблюдения.
    Но я сильно не согласен с рандомными return`ами в коде, возврат должен быть один, в остальных местах надо поднимать флаг и на каждом этапе алгоритма его анализировать.
    Я всю жизнь работаю с легаси, и что бы понять как оно устроено живу с дебагером в обнимку, и меня очень очень вымораживает когда я поставлю брейк поинт до интересного места, а отладчик до него не доходит потому что где то был спрятан return.
    В знакомом коде нет проблем с return`ами, но мы же код не для себя пишем? его другие люди читать будут, им всё должно быть понятно, для них поведение должно быть предсказуемо, логично.
    По поводу if-then-else, на практике пришёл к тому что писать
    var = expression(a,b,c);
    if(var) method1();
    if(!var)method2();

    сильно удобней и ветки местами менять, и от веток отказываться, вот это всё удобней, и более модульно код смотрится.
    Про код в котором строчки сгруппированы правильно сказано — такой код глотаешь, жевать его не приходиться. И опять же шаги алгоритма местами менять удобней.
  • Дилетант в opensource — lessons learned за 3 года
    0
    Спасибо, отличная статья!
    Руки не доходят до делать свой «Идеальный каталог», тоже собираюсь выложить на packagist.org, пусть люди пользуются.
    У меня была заминусованная статья про «Мой склад», там в пух и прах разнесли мой код на github, но тем не менее 180 форков у репозитория есть :)) Если бы форкать было не чего, то наверное не форкали бы? Даже в телегу один раз написали с вопросами, вот такой хабро-эффект.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    0
    это не теги, это Хабы (тематики), я писал в Анализ, в JS я в принципе не мог писать, это редактура или движка Хабра или модераторов.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    0
    в описанном решении три класса, это:
    Migesco\Configurator
    Migesco\Registrar
    Migesco\WebResource

    В шаблон «Migesco\Класс» вроде укладывается. И в чём замечание?
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –1
    ok
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –5
    в чём разница?
    разница в том что писать две строчки с вызовом wp_enqueue_script или не писать ни одной вообще, потому что эта строчка в единственно верном виде была написано до вас.
    Чем меньше ручного ввода тем меньше ошибок. Если вдруг потребовалось поменять логику подключения скриптов, то менять придётся в одном методе, а не по всему коду.

    Это вещи которые к WP не имеют отношение, это философия программирования.
    Меньше думать, больше использовать готовые проверенные решения, написать один раз — использовать везде. Любой кусок кода который повторяется больше одного раза вынести в функцию, любой литерал который с один смыслом используется больше одного раза — в константы. Все настройки из кода вынести наружу, или в файлы или в БД и так далее. Банальные вещи. Есть у меня два идентичных вызова которые могут поменяться идентичным образом? Значит делаем обёртку. Не хотите не делайте.

    Я опытом поделился — написал статью, вы её прочитали, спасибо. На этом наши отношения заканчиваются. Хотите пользуйтесь, не хотите не пользуйтесь, ваше личное дело.

    А 130+ человек, пытаются до вас донести, что идея, заложенная в материал — в корне не правильная. И что не нужно так делать.

    «миллионы леммингов не могут ошибаться», я не услышал ни одного значимого для меня аргумента и в свою очередь мои аргументы ни кого не убедили, такова жизнь. Ни разу не повод холливарить.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –3
    Накручивание любой логики требует времени

    если потребовалось что то изменить то логику уже придётся накручивать, если накручивать её на каждый вызов, то это большее время чем накрутить её в одном методе.

    который можно найти в гугл на раз два

    вы меня не слышите, я два часа от Гугла получал примеры использования, которые в моём случаи не работали. Вообще вся логика событий изложена в посте, это не была революция (от html
    <script>
    к неймспейсу Migesco), это была эволюция в 4 этапа.

    А изначально нужно было лишь добавить

    Знал бы прикуп, жил бы в Сочи, статья не про реализацию, а про подход, про логику событий, 8+1 человек проголосовали за вариант «да» — вот для этих людей эта статья. Не для вас.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    0
    про отдельный файл уже поговорили, про имя производителя — Migesco, неймспейс так и именуется, или надо Migesco\Attachments?
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –5
    «Какова вероятность, что его поддержку доверят человеку который не знаком с этой CMS? Это ж как доверить доработку сайта на php человеку, который не знаком с php»
    Мне доверили разработку SPA и вёрстки, при нулевом опыте JS и CSS (моё резюме), что теперь скажите?
    И да, в моей жизни был опыт доработки сайта на php человеком не знаком с php.
    Расскажите мне об этой жизни ещё, я так мало знаю, так мало видел.

    «Мне нужно подключить файл в подвал страницы» + «обязательно необходимо указывать его версию»
    Моё решение позволяет какую угодно логику накрутить не переписывая все подряд вызовы wp_enqueue_script, это называется гибкость, я не продаю библиотеку, я продаю код который можно дальше без болезненно развивать.

    «я смогу отметить 20 часов работы»
    у меня на все три рефакторинга ушло 6 часов. Если вам на 150 строк банального кода надо столько времени, то таково качество вашей работы.
    При чём из этих 6-ти часов, два минимум ушло на чтение доки и поиск адекватного примера.
    Но бумага всё стерпит, вы пишите.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –3
    во первых, я не отказываюсь устранить замечания.
    во вторых, я не работаю в этом коллективе, пожалуйста не надо с чужим уставом в мой монастырь, я кажется свой ни кому не навязываю.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –4
    это вопрос качества, допустим 39 требований из 40 выполнены, качество = 39/40*100% = 97,5%

    кто то видит мир в чёрных и белых цветах, а кто то в 50 оттенках :)
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –3
    может быть потому что из этого шаблона WP надо сделать шаблон независимый от WP? html он есть html, что там делает WP? ассеты цепляет? ссылку на en локализацию добавляет? header footer body склеивает? в основе всё равно куски html и эти куски от смены фреймворка не поменяются.

    " дополнительную обертку, чтобы вам было удобно не изучать справочник функций WP"
    а что бы обёртку накрутить, оборачиваемые функции WP изучить не надо было?
    Ощущаете абсурдность?
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –9
    «что у вас несколько классов находятся в одном и том же файле»
    проект на WP написан (на процедурах, ООП нет ни в каком виде), мне надо было заморочиться за написание своего автозагрузчика? или надо было подключить Композер которого там отродясь не было?
    На весь проект, это все три его класса, подключаются одной строчкой (require_once), у вас боль вызывает что я 200 строчек насочинял, а подключить Композер ради трёх классов которые используются в паре мест это норм?

    Вам нравиться объявлять массив как [], мне нравиться — array(), это преступление?

    «без ключевого слова public»
    согласен, можно добавить, это всё что нарушается из PSR-1 / 2? это повод сказать что мой код не соответствует PSR? мне тут перечислить в чём соответствует?

    Граммар-наци, казалось бы взрослые люди…
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –3
    Вы свою мысль как то чётче выразите.
    Я придумал 200 строк кода, что бы унифицировать, то с какими аргументами вызываются функции WP для управления ассетами.
    Для того что бы скрыть реализацию функционала через WP функции, тем самым сделать код шаблона независимым от WP
    Что делает мой код? берёт массив с аргументами и делает вызовы функций, вызов функции в коде это одна строчка, а не *цать строчек как было бы на WP.
    Что с чем не стыкуется?
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –2
    вы не понимаете почему я не пользуюсь тернарником.
    // при однородности условия тернарник выглядит вполне себе вменяемо:
    $doAnything = (someMethod() ? action1() : action2()); 

    по моим понятиям должно быть одна строка одно действие, тут в одной строке три действия, мой код это разделяй и властвуй, дроби и разжёвывай.
    Вы предлагаете наворачивать экспрешены, привет тому кто будет это отлаживать, сколько раз придётся нажать F11 что бы понять в какой метод/экшен пойдёт выполнение? а если меня интересует только один из этих трёх вариантов и я ставлю брекпоинт на эту строку, то мне все попадания в этот код придётся просматривать, вместо того что бы поставить один брейкпоинт на том варианте развития событий которое меня интересует и только его дебажить, нет придётся дебажить все три варианта. Спасибо.
    Что такое код тусовать, вы не понимаете, давайте каждый будет работать как ему понятней, как ему удобней?
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –1
    по версии для PHP 5.5 ваше предложение это сделать свойство приватным и использовать тернарный оператор?
    про сделать приватным — можно конечно, если коменты в коде почитать то даже можно найти:
    "// это свойство должно быть private (задел на будущий рефакторинг)"
    и сделать вывод что автор в курсе, что некоторые свойства и методы стоит делать приватными. А можно сделать другой вывод, на ваш выбор.
    Стать рассказывает идею, а не демонстрирует идеальную реализацию, вы ожидаете идеальную реализацию, извините, вы ошиблись статьёй.

    Про тернарный оператор.
    Если весь код это такие цепочки:
    $isSuccess = someMethod();
    if($isSuccess ){
        $isSuccess = otherMethod();
    }
    if($isSuccess ){
        $isSuccess = differentMethod();
    }
    

    , то почему я должен использовать тернарный оператор?
    Я пишу так:
    if($isSuccess ){
        whenSuccess();
    }
    if(!$isSuccess ){
        whenFail();
    }

    и по необходимости могу или удалить первый условный оператор, или второй, в результате правок может остаться только негативный вариант.
    if(!$isSuccess ){
        whenFail();
    }

    При таком подходе я могу тусовать и переносить кусочки кода с меньшими усилиями, для того что бы оставить только одну ветку мне не надо из тернарного оператора делать условный, мне так проще.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –5
    проблема была не с тем что бы подключить скрипт, а с тем что бы он не уникалился. В документации написано передать false (или null не хочу вспоминать), и версия не будет добавлена к ссылке на файл, но ссылка добавлялась.
    Смысл абстракции в том что бы шаблон не переписывать (переписывать поменьше), когда смениться фреймворк.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –15
    а массивы придумали для хранения и доступа к однотипным данным, а циклы придуманы для того что бы в коде был один вызов и данные обрабатывались по одному алгоритму, а не каждый раз по новому.
    Расскажите мне про программирование ещё.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –9
    Казалось бы WP древнейшая платформа-фреймворк и всё должно быть разжёвано в тысячах туториалов, но мне их не удалось найти. Самое смешное когда ты видишь в и-нете примеры реализации, видишь документацию, которой эта реализация соответствует, но у тебя это не работает, и мне очень повезло найти реализацию которая на моей версии отработало как надо.

    Если посмотреть на главу «Второй вариант», то кажется как подключать — нашёл способ, но этот способ не удовлетворяет моих требований к гибкости.
    Кто то пишет на языке программирования, кто то пишет на фреймворке, а мне удобно писать с использованием языка программирования и с использованием фреймворка.
    Нравиться WP прибитый гвоздями к коду? Нравятся вызовы WP, не нравиться лишняя абстракция? о вкусах не спорят.

    «вытекает из предыдущего. Нет, делается не одно и то же.»
    Смысл в том что бы аргументы засунуть в массив и в цикле сделать вызовы с этими аргументами. Количество строк с данными останется прежним, а количество строк кода сократиться в разы. Это ни чего не меняет? в результате работы кода ни чего не меняет, в количестве работы для поддержки кода меняет — количество правок сокращается, нет?
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –3
    обратите внимание на главу — «Что мы получили ?», пункт 2.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –4
    «уже от одного названия realforex хочется нажать «минус»»
    не мой скрипт, не мне менять.
    вот кому призрачные шансы, а мне потом везде копипастить генерацию версии? спасибо, один класс, один метод поправлю и молодец.
    Кому то не нужна единая стратегия подгрузки файлов? ок, мне нужна, не хочу по всему коду править вызовы wp_*, хочу просто поправить один метод, а если стратегий будет две, то добавить ещё один метод и не ловить баги от того что где то поправил, а где то нет.
    Сейчас на WordPress? наша цель свою платформу написать, что бы вендору помахать рукой, и в качестве фреймворка будет точно не процедурный WP и точно не JQuery.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –4
    «enqueue» — спасибо, тогда, да, это хорошее название для функции.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –20
    спасибо, на момент написания кода, такой вариант в голову не пришёл, сейчас когда статью писал тоже об этом подумал, но суть то статьи не в этом, это был только повод.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –9
    По поводу автогенерации не понял в чём юмор, избавились от аргумента в вызове — это не плюс?
    Про назначение зависимостей по порядку не очень согласен, если файлы между собой не зависимы, то пусть грузятся все десять в параллель.
    У меня не было цели поменять функционал, была цель сделать его более наглядным, и попутно получилось сделать более гибким. Нет ну не знаю, пишите стены кода, зачем нам модульность, правда?

    Теперь, такой вариант, что нам надо прицепить 10-ть файлов, это по версии WP 20 строчек, по моей версии это 10-ть строчек в генерации массива и одна строчка на добавление к странице.
    Было 20, стало 11, это ничего?
    Ок.

    Теперь в 4-х разных шаблонах повторим этот фокус — раньше код добавлении файлов на страницу занимал пол экрана (20 строк), теперь только четверть (11), писать меньше, читать меньше, это ничего?
    Ок.

    У меня привычка думать шире поставленной задачи, на короткой дистанции — проигрышно, но я на короткие не бегаю, только марафоны :)
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –9
    на мой вкус набор аргументов это хуже чем «именованные» аргументы при «создании» экземпляра.
    wp_register_script(FILE-ID,FILE-PATH);
    wp_enqueue_script(FILE-ID);

    wp_register_script — функция называется регистрировать скрипт, но может регать в глобальном списке любой файл
    wp_enqueue_script — функция называется зауникалить скрипт, по сути прикрепляет файл к странице и может не уникалить
    Функции вызываются от какого то перечисления констант (в исходниках платформы), какая константа какой имеет смысл? не понятно.
    Сравним с:
    $traderoomScriptFiles = array(
        (new Migesco\WebResource('child_realforex'))
            ->setSource('/wp-content/themes/tol-child/js/child_realforex.js')
            ->setDependency(array(ECRYPTEX_JS))
    );
    Migesco\Configurator::attachFiles($traderoomScriptFiles);

    И тут:
    1)создать ресурс, установить источник, установить зависимость;
    2)добавить файлы;

    всё как называется такой смысл и имеет, назначение каждой константы понятно из названия сеттера, можно не быть гуру вордПресса и всё понять.
  • Как из двух строчек кода сделать 200, и почему так делать надо
    –6
    «не используете пространства имён» серьёзно не использую?
    "+namespace Migesco;" — такой строчки в исходниках нет?

    И вот это: "// это свойство должно быть private (задел на будущий рефакторинг)" в коментах к коду не встречается?

    чем плох «array»?

    В какой строке кода какой из PSR я игнорирую?
  • В погоне за лучшим
    +3
    Значит специфика задач такая что для творчества в ней места нет :) и всё что программисты делают это применяют наработанные навыки и шаблоны. Я от такой работы сбежал при первой возможности.
  • В погоне за лучшим
    +1
    задачи могут закончиться только в идеальноммире где люди значют что им надо и как им надо. Программистов грузят работой просто потому что могут, а не потому что это надо предприятию, такое отношение к программистам не только у линейных сотруджников и менеджеров среднего звена, но и у директоров.