• Как PHP скрипт может расходовать 20Гб памяти?

    @Traney Автор вопроса
    Решил проблему. Парсил файл с помощью phpQuery, там используются abstract class, экземпляр я не мог создать. Глубоко в это не погружался, но решил его заменить. Заменил на simple html dom, перестало выжирать оперативку и плюс - ощутимый прирост в скорости.
    Ответ написан
    1 комментарий
  • Как перенять объектно-ориентированное мышление?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Т.е. сложно понимаю, что "засунуть" в один объект, что в другой, что должно быть статическим методом, что приватным и тд.


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

    То есть по сути наше приложение - один объект. У него внутри вообще все. У этого объекта есть один метод - обработай запрос. Когда внешний мир его вызывает, меняются значения каких-то переменных, вызываются какие-то внутренние "приватные" для внешнего мира функции, и делается работа.

    Теперь задумаемся о декомпозиции всего этого хаоса. Мы находим какую-то задачу, которую выполняет наш код (например какую функцию вызвать для обработки каждого конкретного запроса) и выносим это в отдельный объект. Отправка email-ов - отдельный объект. Весь SQL зашиваем в отдельный объект. Соединение с базой - объект. Пользователи - объекты. Все - объекты.

    И главное, у каждого объекта есть своя область ответственности. UNIX way. Каждый объект делает что-то одно и делает это хорошо. Бывает так что ну... нужно сделать так что бы один объект делал две вещи. НЕ вопрос, мы можем его попросить сделать что-то сложное, а он будет как хороший менеджер тупо делегировать работу другим объектом. То есть он и сложную штуку сделает, и сам не будет знать как она делается.

    А все безхозные функции, которые не пренадлежат никаким объектам (например функции порождающие объекты) можно вынести в статические методы. Главное что бы статичесих переменных у нас небыло (ибо это те же глобальные переменные). И поменьше публичного ибо черт его знает что эти разработчики будут использовать. Причем "те разработчики" это вы завтра.

    Вообщем писав всё время на процедурке, сложно перейти на ооп.


    Просто не думайте что это что-то "принципиально другое". Это та же самая процедурка, просто благодаря классам и объектам, вы можете порезать систему на маленькие модули. Данные будут лежать рядом с процедурами и у вас будет больше контроля за происходящим.

    Вы можете начать погружаться в ООП с того, что разобраться "почему глобальные переменные это плохо", почему "состояние порождает сложность" и что такое эта "сложность" (многие почему-то думают что сложность выражается в написании кода а не в его чтении или поддержке), почему "изоляция" (и как следствие инкапсуляция) - это хорошо. Как это все соотносится с декомпозицией. Что такое "ответственность", что такое зависимости, связанности

    Подскажите, какой проект начать писать (гостевая, блог), или может начать изучать фреймворк.


    Фреймворки универсальны, а значит чистого ООП там быть не может. Во всяком случае нет ни одного фреймворка на котором стоит учиться ООП.

    Есть хорошие упражнения на развитие понимания объектно-ориентированного проектирования. Например вот: https://habrahabr.ru/post/206802/

    Сразу хочу отметить что это крайности. Упражнения же. Они должны ограничивать вас что бы заставлять думать и задавать правильные вопросы.

    Или может подскажите книгу/сайт где пошагово в ооп написан какой-то проект, чтобы быстрее пришло понимание.


    Так вы научитесь делать один конкретный проект а на втором вы уже проиграете. Так дела не делаются. Надо разобраться с причинами появления идеи ООП. Ну то есть что было до. Можно еще с функциональным программированием попробовать разобраться. В PHP оно слабо применимо, но основные идеи очень тесно переплетаются с ООП и познав немного функциональщины ваше ООП будет лучше. Да и если про ООП вы можете найти много булшита, про функциональщину врут мало.
    Ответ написан
    3 комментария
  • Как подписывать разработанные сайты?

    BizDirect
    @BizDirect
    Ковыряю WordPress в рабочее время...
    Че-то вспомнилось, когда видеосъемкой торжеств занимался, некоторые колеги брали деньги за саму съемку, за монтаж и при этом чуть ли не гвоздем DVD-диски царапали, чтобы заказчик их не тиражировал, потому как договорились только, например, о 2 копиях... ))

    Если по существу, авторское право - извечная тема ремесленников ) Вы, как генератор идеи. можете претендовать на авторское право на свою идею (уникальный дизайн, хитроумный код, который нигде раннее не использовался), но если вы для ее реализации используете сподручные средства, которые принадлежат другим людям (оплата рабочих часов, инвестиции сюда тоже входят), то они вступают с вами в смежные права. А тут уж, извините, подвиньтесь - доля 50/50. И ваш соавтор в полном праве отказать вам в размещении информации о вас на своей половине (на готовой продукции ибо ее он и заказывал).

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

    А супер-пупер средства для защиты своей ссылки не существует, даже если вы установите через двадцать пять раз кодированный код связь клиентского сайта со своим. По личному опыту могу сказать, что и не такие авторства выковыривать приходилось, но это уже в прошлом... :)
    Ответ написан
    Комментировать
  • Что лучше изучить для фриланса по вечерам?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    Я бы начал с мониторинга бирж на предмет заказов. Но не для выполнения, а для изучения. Смотрите те, где вы что-то умеете или представляете как делать. Доучиваете необходимое и делаете для себя.
    Так и наберете необходимых скиллов.
    Ответ написан
    Комментировать
  • Есть ли среди вас те, у кого есть постоянный стабильный доход не от разработки, а от своего продукта?

    myfirepukan
    @myfirepukan
    Жарим поиск
    Есть такие это я.
    MFA тема жива в мировом масштабе. В СНГ на adsense нормально заработать проблемно, в РСЯ новые сайты почти не берут.
    MFA = профессионал в SEO и не только белом )) т.к. вам нужно уметь с минимумом затрат привлекать много дешёвого трафика

    А по поводу проекта ради идеи, то в основе любого проекта даже MFA должна лежать интересная идея. Как минимум идея интересного парсера )))))
    Ответ написан
    2 комментария
  • Как создать sitemap, который будет доступен только ПС?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Файл sitemap.xml можно загрузить вручную в инструментах вебмастера, не публикуя его в robots.txt.

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

    Выдавать различающийся контент ПС и пользователям - плохая практика, за которую поисковики понижают в ранжировании.
    Ответ написан
    Комментировать
  • Как создать sitemap, который будет доступен только ПС?

    @yuras666
    В настройках webmaster для "яндекса" и "гугла" можно указать прямую ссылку на твой sitemap.xml в стиле /my-super-secret-site-map.xml. Но смысла я в этом не вижу. Что мне помешает просто пройтись по сайту и собрать все прямые ссылки? Если твой контент захотят спарсить, то его с вероятностью 100% спарсят. Там есть другие секретные методики: зашивать токен в сессию, смотреть рефер, блокировать типовые запросы с одного IP, какие-нибудь костыли на js. Но это все обходится очень быстро. Это интернет, тут все в общем доступе ))))
    Ответ написан
    3 комментария
  • Как эффективно работать целый день?

    @sarathorn
    php программист, веб-дизайнер, коллекционер
    Мне 20 лет, живу отдельно от родителей, зарабатываю фрилансом. Самое важное - организовать свой день.

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

    В моём случае физическая нагрузка или простая прогулка не улучшают продуктивность, с другой стороны залипание в ютюб/вк или чтение статей могут свести все старания на 0.

    Серьёзно мешают работать уведомления о письмах, сообщениях... звонки... В случае с работой в офисе будут отвлекать коллеги. Смело посылайте всех нафиг. Даже босса. Босс потом спасибо скажет, когда вы сделаете все задачи в срок или даже раньше.

    8 часов подряд кодить каждый день... Вы серьёзно? На этой неделе мои результаты такие: воскресенье - 12 часов кодинга, понедельник - 8, вторник - 8, среда - 6, четверг - 4, пятница - 3, суббота (сегодня) - нет ни малейшего желания, но очень надо хотя бы пару часов... Вы просто перегорите. Настраивайтесь на 4, максимум на 6 часов кодинга в день. Остальное время можно заполнить чтением документаций, проработкой прототипов на бумаге, обсуждениями с коллегами и боссом.

    Если ситуация требует 8-16 часов кодинга подряд (такое, увы, бывает), то меня спасают две вещи:
    1) Сериалы. Второй монитор, второй ПК, планшет или даже смартфон вам в помощь. Берёте сериал, который УЖЕ смотрели и включаете. Он должен быть интересный, но уже знакомый, это два обязательных требования. Так он не будет отвлекать от работы (сюжет же уже знаком, а половину реплик вы можете произнести вместо актёров), но создаст иллюзию отдыха. В моём случае можно всё привести к такому выражению: 60 минут кодинга = 80 минут кодинга под сериал. НО! Так я могу выдерживать 12-16 часов без особых усилий. Что в итоге даёт больше результата, чем 6-8 часов чистого кодига после которых я просто убитый на пару дней.
    2) Кофеин. Обычный кофеин. Кофе я не пью, а энергетики слишком дорогие для регулярного применения. Есть замечательная альтернатива - Кофеин-бензоат натрия. ~30рублей в аптеке за 6 таблеток. Максимальная разовая доза - 6 таблеток, она же 300мг кофеина. 1-2-3 таблетки мой организм может не заметить, а при шести я начинаю разговаривать сам с собой. Грань очень тонкая, но при правильной дозировке получается неплохой boost к производительности. Внимание! Кофеин может повышать давление и пульс, а также имеет ряд побочных эффектов. Передозировка может убить. Я не несу ответственности за последствия приёма кофеина.

    Смесь кофеина и прогулки (зима, 3 часа ночи, -20C) может породить тонну гениальных идей, увы, лишь 1 из сотни имеет шанс на успех в реальном мире.

    Вообще, я для себя вывел важную закономерность. Мотивация - фигня. Желание получить больше денег и когда-нибудь улететь на неделю на Мальдивы не приведёт к результату, рано или поздно, но мозг решит, что гораздо правильней работать в 2 раза меньше, но отдохнуть на местном водоёме с друзьями и шашлыками. Гораздо интереснее обстоит дело с чувством вынужденной необходимости. Проще говоря, с кнутом. Я не сделаю работу и меня уволят. Я не успею вовремя и меня лишат премии. Я облажаюсь и все будут смеяться надо мной... Вот это работает.

    Чтобы работа давалась без усилий нужно какое-то вдохновенье и чувство гордости за свою работу. Я сделаю этот проект и тысячи людей будут им пользоваться! Я напишу эту программу и моя девушка за меня порадуется. Этот проект будет помогать начинающим бизнесменам, они никогда не узнают моего имени, но они будут мне благодарны.

    Непосредственно программирование (как и дизайн) идёт легче, если есть план и схемы. В моём случае при работе над back-end у меня 70% времени уходит на проектирование и проработку мелочей на бумаге, лишь 30% времени это сам кодинг. При работе с фронт-эндом я где-то 60-70% времени работаю, а 30-40% проектирую. Я так понимаю, вас не заставляют именно кодить 8 часов. Вас заставляют 8 часов сидеть на рабочем месте. Вот и прикиньте, что из них лишь где-то 3-4 часа будут самим кодингом. Хотя... Если работы очень много, вы не единственный кодер в конторе и есть более опытные, которые и берут на себя всё проектирование... ух... тогда остаётся только монотонно стучать по клаве...

    Ещё очень важный момент. ОБЯЗАТЕЛЬНО ОТДЫХАЙТЕ! В выходные не должно быть ни единой мысли о работе, после работы займитесь хобби, уберитесь дома, погуляйте, сходите в спорт зал, почитайте книгу, посмотрите кино, поспите в конце-концов. Никакой работы за пределами рабочего места. Этот трюк заставит мозг ассоциировать рабочее место с рабочим процессом, а значит уже не нужно будет самому его мотивировать работать. Это работает крайне просто. Если вы видите очень красивую девушку да ещё и без одежды, то кое-что что происходит с одним очень важным органом и мозг начинает работать совершенно иначе. И вот теперь в поле зрения попадает ваше кресло и ваш рабочий комп, мозг пробегается по ассоциациям и понимает, что надо работать. В паре с состоянием вынужденной необходимости всё сработает на ура.

    Перерывы - спорный момент. Мне проще проработать, например, 6 часов без перерывов (только если на отойти до туалета или до кухни, чтобы налить воды и стащить печеньку), чем 6-8 с перерывами. Я очень много времени и сил трачу на переключение с одного вида деятельности на другой.

    По поводу еды. В момент приёма и пищи и где-то следующий час я способен только читать и смотреть, но никак не творить.
    Ответ написан
    10 комментариев
  • Какую использовать программу/сервис для работы с клиентами?

    @SirBataneg
    веб-разработчик
    Битрикс24 и его CRM?
    Ответ написан
    Комментировать
  • Как вывести записи из определенной рубрики WordPress?

    @cluberr
    <?php
    global $post;
    $postslist = get_posts( array( 'posts_per_page' => 2, 'category'=>'news' ) );
    foreach ( $postslist as $post ){
    	setup_postdata($post);
    	?>
    	<div>
    		<?php the_date(); ?> - выводит дату новости 
    		<?php the_title(); ?> - выводит заголовок новости
    		<?php the_excerpt(); ?> - выводит краткое описание 
        <?php the_post_thumbnail(); ?> - выводит превью новости - картинку 
    	   </div>
    	<?php
    }
    wp_reset_postdata();  ?>
    Ответ написан
    1 комментарий
  • Что делать с клиентом, который ничего не понимает в технологиях?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Помогите клиенту разобраться и настройте ему все, он вам будет только благодарен. Все это за отдельную плату, конечно же. Не нужно вести себя как высокомерный индюк.
    Ответ написан
    Комментировать