• Плохо ли создавать проекты с нуля? Что значит быть про?

    @Plus3x
    c10c573f52694badb316d1aa222bc323.png
    Ответ написан
    Комментировать
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Я понимаю, о чем вы пишите и почему. Ваш код работает, т.к. решает поставленные задачи и удовлетворяет потребности ваших клиентов. Имеет ли он право на жизнь? Да, но только в вашем отдельно взятом случае.

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

    Что если вам потребуется сделать блог, в котором нужно иметь комментарии, которые обновляются в режиме реального времени? И комментарии могут содержать HTML, но такой, чтобы ваш сайт не могли взломать?
    А еще комментарии короче 2000 символов по воскресеньям платные. Оплата через Яндекс.Деньги.
    Вы все это делаете, все работает.
    Затем заказчик вам говорит, я хочу запустить такую же систему другу, но с оплатой по понедельникам через WebMoney.
    Вы копируете сайт, переписываете функцию оплаты.
    Дальше ваш заказчик видит, что у друга больше денег, он просит добавить WebMoney к себе.
    Вы опять переписываете код. Добавляете условия.
    Потом к вам приходит друг заказчика и хочет другое оформление. Вы переписываете его функции.
    Затем он просит добавить поиск по названиям записей к себе на сайт. Вы делаете. Буквально на следующий день к вам приходит заказчик и тоже просит поиск, но не только по названиями, но и по телу статей и по комментариям. Вы делаете.
    Затем ваш заказчик видит, что дела у него идут в гору и он просит отменить платные комментарии и сделать просто платные аккаунты для всех. Вы переписываете.
    Тем временем друг просит вас сделать все тоже самое, но с его оформлением.
    Дела у заказчика идут в гору и сайт начинает тормозить. Вы делаете кэширование.
    Внезапно сайт заказчика попадает в топ и нагрузка резко увеличиваете настолько, что один сервер уже не справляется. Вы переносите все на самый мощный, но он его тоже мало.
    Нужно делать горизонтальное масштабирование.
    Для этого нужно переписать все функции, которые работают с базой данных. А их уже больше двухсот. И просто замена не подходит.
    Сайт открывается через раз, заказчик звонит вам каждые 2 часа и спрашивает, как там прогресс.
    И тут вам присылает письмо друг заказчика и говорит, что хочет перейти с MySQL на PostgreSQL.
    И вы понимаете, что вам надо будет переписать еще 300 функций, но на другом сайте. Вы его посылаете, поскольку вы и так в мыле.
    Друг жалуется на вас заказчику. Заказчик, не ставя вас в известность, нанимает другого исполнителя, у которого отваливается челюсть от того, что творится в системе. Он объясняет, что ему нужно будет потратить полгода, чтобы вникнуть в то, чтобы понять ваш код, но он может сделать все тоже самое за 4 месяца, причем для заказчика и его друга так, что это будет расширяемо и поддерживаемо не только им.
    Тем временем, спустя двое суток жизни на кофеине вы героически переписываете все функции заказчика и идете отсыпаться. После суток сна вы обнаруживаете на автоответчике сообщение, что вы уволены. А все потому, что забыли проверить функцию логина.

    А теперь разберем эту историю по частям. Почему же вас уволили?

    Незнание абстракций и шаблонов проектирования привело к тому, что вы вынуждены были поддерживать 2 разных проекта с практически одинаковой логикой.
    Например ORM смог вам помочь поддерживать 2 разные базы данных без каких-либо усилий. Сменить одну базу на другую стоило бы исправления конфигурации, а не переписывания 300 функций.
    Использование фреймворков позволило бы сократить время на реализацию подключений платежных систем. Многие из них имеют готовые реализации.
    Опять же в современных фреймворках, например в той же Doctrine реализован шардинг. В большинстве случаев ваши проблемы свелись к изменению настроек.
    Но даже если бы вы накосячили, то интеграционные тесты не позволили бы попасть говну в продакшен. А если бы оно и попало, ну накосячили вы с тестами тоже, то проблема была бы обнаружена на раннем этапе благодаря "сине-зеленому" развертыванию и она бы не затронула всех пользователей.
    И да, ваш код не прошел внешний аудит.

    Чтобы быть настоящим профессионалом, нужно не только знать, но и уметь применять на практике ООП, популярные фреймворки, шаблоны проектирования, тестирование и средства непрерывной интеграции, а еще пользоваться нормальными IDE и нести ответственность за сделанную работу.

    Когда пишете свой код, почаще задавайте себе вопрос: А если бы это был код для моего кардиостимулятора? Это поможет.
    Это вам для общего развития.
    Ответ написан
    5 комментариев
  • Имеет ли юридическую силу запрет на парсинг сайта?

    @nirvimel
    Любые дополнительные юридические ограничения (сверх того, что требует государственное законодательство) можно навязать пользователю лишь одним способом - путем ДОБРОВОЛЬНОГО (с обеих сторон) заключения договора. Это обычно реализуется в виде пользовательского соглашения при регистрации на сайте. При этом одна сторона (сайт) обязуется предоставить какие-то услуги (например, доступ к некоторой информации), в то время как другая сторона (пользователь) добровольно принимает на себя какие-то ограничения (например, не пользоваться никакими автоматизированными средствами для извлечения, предоставляемой ему, информации). Это соглашения вступает в юридическую силу с момента нажатия на кнопку "Принимаю условия" (см. акцепт).
    Поскольку с анонимом в принципе невозможно заключить никакой договор (очевидно), то на, не прошедшего регистрацию пользователя, невозможно возложить никакие ограничения (сверх существующих в законе).

    Но все вышеописанное касается только СПОСОБА, которым пользователь взаимодействует с сайтом (автоматизированный/ручной/ножной/и.т.д.). Что касается самого контента, который пользователь потребляет, то на него распространяется все нормы авторского права (независимо от способа, которым он получен). Поскольку авторское право (как государственный закон и международное соглашение) распространяется на всех без исключения (в том числе и на анонимов), то не требуется заключать с пользователем никакого договора (и заставлять проходить регистрацию). Достаточно упомянуть (желательно на видном местом) запрет на использование данного контента в любых целях, кроме личного ознакомления. Это допустимо на основании того, что владелец исключительных прав на контент может определять любые ограничения на его использование. Что это дает: контент, собранный автоматизированными средствами, в дальнейшем не может быть использован никак без нарушения закона о защите авторских прав (это серьезнее, чем нарушение пользовательского соглашения). Это полный юридический тупик для того, кто захочет заняться парсингом (пусть даже само по себе это будет законно).
    Ответ написан
    2 комментария
  • Почему при задавании атрибуты переходит сразу же по ссылке?

    villiwalla
    @villiwalla
    HTML-верстка
    Потому что не отменено стандартное поведение
    Ответ написан
    Комментировать
  • Нужно ли заниматься глубоким изучением JS?

    @D3lphi
    Вы уже определитесь, кем хотите быть... Или вы используете только готовые решения: шаг влево, шаг вправо - расстрел, у вас недостаточно знаний и вы не можете видоизменить код под свои нужды. Или же вы умеете писать собственные решения. По-моему, ответ очевиден. Собирайте портфолио и параллельно изучайте js, поднимайте навык. В чем проблема-то?
    Ответ написан
    1 комментарий
  • Как организовать sms-уведомление администратору при записи онлайн с сайта?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Некоторые операторы предоставляют емайл для sms, типа 90xxxxxxxx@sms.beemail.ru и др.
    Для нескольких абонентов, это самый простой способ.
    P.S. Возможно нужно позвонить в техподдержку, или зайти в личный сайт вашего оператора и разрешить доставку email2sms.

    В случае большого количества клиентов, ищите что такое sms шлюз, но это обычно платная услуга, например:
    https://iqsms.ru/services/sms-delivery/
    Ответ написан
    2 комментария
  • Наставник для 40 -летнего?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    Данные этого человека:
    1. 40 лет;
    Неважно

    2. Огромное желание работать в данной области;
    Почему же он не работает в данной области? Или желание выявляется исключительно "хочу"? Пусть сидит и пишет код.

    3. Живет не в мегаполисе;
    Неважно

    4. Любовь к точным наукам и использование этих навыков в быту и повсеместно;
    Противоречит с 2. Если любовь к точным наукам, то мог бы самостоятельно логично додуматься, что нужно не просто хотеть а сидеть иделать

    5. Есть свободное время;
    То есть он хочет, и свободное время есть, но ждет одобрения?

    6. Быстро "впитывает" самую разнообразную информацию;
    Противоречит с тем, что он до сих пор не работает, если хочет и есть свободное время.

    7. Смотрит на мою разработку и вдохновляется сильно.
    Противоречит со всем предыдущим. Смотрит, вдохновляется, хочет, есть время, но при этом ничего не делает?
    Ответ написан
    1 комментарий
  • Наставник для 40 -летнего?

    amsterdy
    @amsterdy
    developer of life
    Добрый день.

    Когда люди говорят, что у них нет навыков / опыта - они ошибаются. Всегда. Это правило без исключений. Опыт или навык всегда есть в достаточном количестве, чтобы начать. Тем более у человека взрослого. Многие просто любят прятаться за этой стеной: «у меня нет навыков, поэтому я не буду этого делать».

    Через правильные вопросы всегда можно собрать горстку необходимого опыта.

    Любовь к точным наукам и использование этих навыков в быту и повсеместно;

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

    Удачи.
    Ответ написан
    Комментировать
  • Наставник для 40 -летнего?

    @mamayama
    Было бы желание.
    Возраст не важен, тут разве что психологическое неприятие.
    Ответ написан
    Комментировать
  • Все изображения вырезаются из psd-макета или как?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Этот вопрос решается с дизайнером индивидуально.
    Как правило, верстальщик сам вырезает всё. Но бывает, что и дизайнер готовит.
    Ответ написан
    Комментировать
  • В чем смысл аутентификации через социальные сети?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    1) нет
    2) нет
    3) просто удобство
    Ответ написан
    2 комментария
  • Как верстаются подобные страницы?

    @Zewkin
    Я у мамы фронтэндер
    Вас это волновать не должно. Верстайте по макету, остальным будут заниматься программисты.
    Ответ написан
    2 комментария
  • Как сформировать SQL запрос выборки на 730 строк?

    @d-stream
    Готовые решения - не подаю, но...
    Любым удобным способом заполняем некую временную таблицу с колонками xml_id и user_id теми самыми xml_id

    потом делаем апдейт этой таблицы - заполняем user_id

    ну и далее delete from ... where xml_id in (select xml_id from temp)
    Ответ написан
    Комментировать
  • Как сделать просвечивающую(сквозную) обводу у элементов формы?

    Мой вам совет - оторвите руки дизайнеру.

    Сделать можно через canvas, но помучится придётся.
    Ответ написан
    Комментировать
  • Нужен ли программисту собственный блог?

    dom1n1k
    @dom1n1k
    Блог нужен человеку, которому есть что сказать и чем поделиться.
    Судя вопросу, вам пока не нужен.
    Ответ написан
    1 комментарий
  • Редактирование атрибута type="time" возможно?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Это зависит от браузера, яндекс например ставит "--:--", файрфокс, сафари и ie вообще не понимает такого типа и шарашит type='text' ( caniuse.com/#search=type%3D%22time%22 ). Почему бы Вам не взять любой timePiker ( https://yandex.ru/search/?text=timepicker%20jquery... ) написанный на jquery, который будет работать везде, одинаково и так как Вам надо?
    Ответ написан
    Комментировать
  • Как прижать блок price c элементами в самый низ?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    Комментировать
  • Почему не выполняется SQL запрос?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    О том, почему не выполняется запрос, ты должен спрашивать не у дяди с улицы, а у своей БД. Только она это знает точно.
    Дядя с улицы может только подсказать, как правильно спросить у базы данных.
    Поэтому меняем код подключения на
    $connect = new PDO("mysql:host=127.0.0.1;dbname=***", "***", "***",[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

    И закономерно получаем ошибку
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index)

    В которой черным по белому написано что слово index базе данных не нравится.
    идем в список зарезервированных слов и убеждаемся что так оно и есть

    И вот дальше начинаем удивляться - почему в phpmyadmin аффтар употребляет обратные апострофы, а в пхп - нет.
    Ответ написан
    1 комментарий
  • Не работает datepicker в вордпресс, показывает ошибку, в чем проблема?

    @PavelFokeev
    pavl1k.ru
    Значение, которое вы пытаетесь вывести ( "03-29-2017" ) не соответствует заданному формату "yyyy-MM-dd".
    Преобразуйте значение переменной $default_value в "2017-03-29"

    Например, так
    list($m, $d, $y) = explode("-", $default_value);
    $default_value = "$y-$m-$d";
    Ответ написан
    2 комментария