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

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

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

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

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

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

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

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

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

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не могу гадать чем вы пользуетесь кроме cmd.exe на сервере windows, но если сервер с GUI, то могу предложить неплохую программу ConEmu:
    https://conemu.github.io/en/Screenshots.html
    Одни скриншоты чего стоят.
    Однако, если вы считаете, что нужно как-то удобнее работать с текстом, то по своему опыту могу предложить вам попробовать неплохой менеджер буфера обмена - ditto: ditto-cp.sourceforge.net/. Он помнит всю историю (обычно все скрипты/команды проходят через буфер обмена) и можно искать по части кода. Например, я не помню на память команду запуска сборки некоторых проектов мавеном и делаю так:

    0fca0952f2b34d4f82d0d21134dd91fb.png

    Старт mysql:

    825bab285f854ddfa57fdb803e6fcfc8.png

    Остановка mysql на локальном компе:

    44fd188d26c14d7e8e62491409947ef7.png
    Ответ написан
    3 комментария
  • На каком wiki-движке поднять контент-проект?

    @LuchS-lynx
    инженер-ПТО
    1. Если на первом месте стоит удобство работы для конечного пользователя, то я бы выбрал из платных Confluence, из бесплатных Xwiki. Но если нет желания разбираться в администрировании и хочется простоты, то я бы выбрал Dokuwiki
    2. БД это таблицы в явном или неявном виде, например списки или таск мэнеджер. Я дружелюбнее xwiki движка для пользователя не встречал.
    XWiki — это вики второго поколения, написанная на на языке Java, лицензия распространения LGPL, функциональность включает в себя блог, инструменты API, комментарии, аутентификацию по LDAP, экспорт страниц в PDF. Так же есть возможность программирования скриптов (Velocity, Groovy, Python, Ruby and PHP) и поддержки синтаксиса популярных Вики-движков (Confluence, JSPWiki, Creole, MediaWiki, and TWiki). Используется многими компаниями по всему миру. 25 языков интерфейса, включая русский.
    Из минусов - мало кто использует среди русскоговорящих.
    www.xwiki.org/xwiki/bin/view/Main/WebHome
    моя статья с примером портативной настроенной версии под себя, правда с тех пор много воды утекло, фич стало ощутимо больше.
    https://habrahabr.ru/post/279101
    Ответ написан
    Комментировать
  • Какой WIFI роутер/репитер подойдет для VPN "always-on"?

    @Tabletko
    никого не трогаю, починяю примус
    Возьмите routerboad от mikrotik с необходимым для вас количеством wifi карточек.
    Ответ написан
    Комментировать
  • Кодинг с Android-планшета?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Вы координально хреново выбрали кейс.

    1. Учим Vim
    2. Пробрасываем ssh порт на домашний комп
    3. Кодим через любой ssh клиент на андройде.

    RDP. TeamViewer это всё жуткий оверхед.

    Ну или если у вас Экстремальный кодинг то возьмите с собой ноут - экстремала не поубавится но зато эффективность гараздо выше.

    Ну или лучший вариант - поехили на отдых, так ОТДЫХАЙТЕ!
    Ответ написан
    Комментировать
  • На какой бесплатной CMS можно оперативно сделать лёгкий сайт?

    AlexanderShapoval
    @AlexanderShapoval
    PHP maker
    Если совсем просто - "get-simple" . Тут даже база данных не нужна, всё хранится в файлах.
    Если посложнее - "octobercms" . Тут куда гибче и функциональнее. Сайт визитку можно сделать с нуля за пару дней, интернет-магазин за 1-2 недели. Всё зависит от сложности и опыта
    Ответ написан
    1 комментарий
  • Куда лучше поставить ssd?

    a13xsus
    @a13xsus
    Lazy developer
    SSD ставишь на место HDD, а HDD ставишь в адаптер на место DVD-привода. Инфа 100%. В магазине фигню сказали.
    Ответ написан
    Комментировать
  • Как удалить из Windows 7 все что не нужно?

    saboteur_kiev
    @saboteur_kiev Куратор тега Windows
    software engineer
    Исходя из текущего вопроса, вы точно знаете, что там лишнее?
    Ответ написан
    3 комментария
  • Как настроить приоритет мониторов?

    ArteMoon
    @ArteMoon
    Развиваюсь
    Никак, приоритет вывода сигнала в прошивке видеокарты, обычно это VGA>DVI>HDMI>DP.
    Возможно есть умельцы способные прошивку поправить.
    Ответ написан
    Комментировать
  • Как объединить авторизацию на нескольких доменах?

    IGHOR
    @IGHOR
    Qt/C++ DEV/CTO
    домен А - авторизационный домен, база одна
    домен Б - сайт
    домен С - еще один сайт

    пользователь заходит на домен Б, пусть регистрируется или авторизируется
    1) домен Б генерирует токен или сессию, передает ее в параметре на домен А
    2) домен А показывает диалог, проходит авторизация или регистрация
    3) домен А генерирует случайный временный токен, передает его в параметре на домен Б, вместе с полученными параметрами от 1.
    4) домен Б получает авторизационные Cookie по временному токену и токен удаляется
    Ответ написан
    Комментировать
  • Временное убежище на случай падения хостинга?

    @BorisKorobkov
    Web developer
    Поскольку хост стоит 100 рублей в месяц -- платить за временное решение хочется меньше.

    Если вы оцениваете результат вашей работы (сайт) дешевле 100 руб/месяц, значит, ваша работа - полный трэш. Такое никто и не заметит, если сайт упадет. Так что можно и не париться.
    А если ваша работа стоит сотни тысяч рублей, то жмотиться сотни рублей - это нищебродство
    Ответ написан
    5 комментариев
  • Как мне вставить звуковую карту?

    DMGarikk
    @DMGarikk
    Lead Software Developer
    Можно звуковушку в нижний слот воткнуть, PCI-E x1 можно в x16 втыкать
    Ответ написан
    4 комментария
  • Ошибка в синтаксисе команды при ппопытки переименовать файл?

    @res2001
    Developer, ex-admin
    Пути в которых есть пробелы нужно брать в кавычки.
    Ответ написан
    Комментировать
  • Возможна ли загрузка с лайв дистрибутива на компьютере с Windows без следов?

    Ezhyg
    @Ezhyg
    А почему после загрузки с флешки на постороннем системном диске должны остаться следы?
    Ответ написан
    Комментировать
  • На чём лучше написать сайт предоставления услуг?

    @Froggyweb
    На чем угодно начиная с голого html. Cms позволит менять текст/картинки кнопочками
    Ответ написан
    1 комментарий
  • Процессор и материнская плата, будет ли работать?

    Jump
    @Jump
    Системный администратор со стажем.
    Да и еще вопросик, как будут обстоять дела в данной сборке с играми?
    Косынка думаю пойдет без проблем.

    Просто обновляю старый комп, для начала хочу взять процессор и материнку
    Обычно когда обновляют - покупают новое. А у вас по ссылкам морально устаревшее железо которое нужно срочно обновлять.
    Ответ написан
    Комментировать
  • Как сменить ip на заданный статический?

    @nirvimel
    Это просто, достаточно сменить адрес проживания на нужный город и подключить себе интернет по новому месту жительства.

    Если чуть умерить аппетиты и поставить задачу несколько по-другому, то вместо "смены" IP можно пропускать свой трафик через другой узел для создания видимости нахождения в другом городе. Для этого потребуется приобрести VPN в этом городе любым способом.
    Ответ написан
    Комментировать
  • Как совместить 2 языка С++ и C#?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    2. Писать на С++/CLI. Только тут я не понимаю, как их совместить.
    Ну написал я код на С++/CLI, а как мне его в проект , написанный на С# вставить ?


    Этот вариант неплохо разжеван в этих двух вопросах.
    Можно ли совместить в одном проекте программы написанные на разных языках (C++, C#) в VS2012?
    Как динамически подключать библиотеки?

    Этот вариант на деле оказался самым удачным, потому что деление проекта на три части (C++; CLI; C#) так же строго делит и области ответственности. На стороне C# остается только интерфейс, на стороне CLI - только связь с низким уровнем, на стороне C++ - только низкий уровень.
    Целостность кода сохраняется, библиотеку низкого уровня можно с равной легкостью подключить как к библиотеке CLI, так и к другому низкоуровневому проекту.
    Ответ написан