Задать вопрос
  • Стоит ли учить Ruby и Rails в 2016 году?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Прям для вас писал: frey.su/should-i-learn

    Добавлю еще, что как только вы займетесь Ruby, вы услышите о нем столько, сколько не слышали за всю жизнь. Также и с любым другим инструментом, не только с языками. Работы на Ruby и Ruby on Rails навалом.
    Ответ написан
    16 комментариев
  • Почему ОЗУ работает на наименьшей частоте?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1 комментарий
  • Каких знаний php для верстальщика будет достаточно?

    @Silm
    Верстальщики изучают PHP на уровне шаблонизатора.
    • Надо уметь выводить в шаблонах переменные.
    • Писать логические условия (если пользователь не авторизован, то показываем форму входа, если нет, то ссылку на личный кабинет).
    • Писать циклы (в шаблон передается переменная с массивом постов, верстальщик должен написать цикл для их отображения).
    • Надо знать базовое API языка, встроенные функции для работы с числами, массивами, строками, датами и тп.
    • Нужны знания синтаксиса объектов. Понимать не обязательно, главное знать как вывести содержимое.


    Скачиваете какой нибудь базовый курс по PHP, дня за 2-3 пройдете. Обязательно почитайте документацию на php.net
    Ответ написан
    1 комментарий
  • Бесплатный проект для портфолио превратился в бесконечный. Как быть?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    Вариант 1 - послать и забыть.
    Вариант 2 - переводить из бесплатного в платный.

    Базовый функционал есть? Есть
    Клиент уже доволен? Доволен
    Пора платить деньгу, а так он почувствовал халяву и не слезет с вас.
    Ответ написан
    6 комментариев
  • Какие есть по-настоящему качественные видеокурсы по php?

    Zempik
    @Zempik
    ๏̯͡๏
    "На вкус и цвет товарищей нет". Я некоторое время смотрел видео-курсы школа программирования php, правда они платные, но если не сможете найти где скачать, то я могу скинуть.
    P.S. по запросам граждан кидаю методички к первому уровню ШП php (домашнее задание в конце методички):
    1. https://yadi.sk/i/p7v-3_DTgzqMJ (написано урок №2 - ложь, это первый)
    2. https://yadi.sk/i/f3nGsngogzqMN
    3. https://yadi.sk/i/0r6Rrhr1gzqNb
    4. https://yadi.sk/i/9v8VIR6egzqNH
    5. https://yadi.sk/i/3rO3MG5tikciD
    6. https://yadi.sk/i/-gjT76gUikciB
    7. https://yadi.sk/d/hA5aEzwrikci5
    8. https://yadi.sk/i/VgMHu8HNikci3
    Надеюсь меня не забанят за ссылки :)
    Ответ написан
    7 комментариев
  • Ваша лучшая программа для теста жесткого диска. Ваш выбор и почему?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Я пользуюсь нестареющей классикой - Victoria.
    Ответ написан
    1 комментарий
  • Ваша лучшая программа для теста жесткого диска. Ваш выбор и почему?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    CrystallDisk
    Все что надо есть, а больше не надо.
    Ответ написан
    Комментировать
  • Попросили проверить код, на что смотреть нужно?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Смотря зачем)). Я когда делаю Code Review критерии следующие:

    * Безопасность:
    - Каждый аргумент метода простого типа должен проверяться на тип в случае его проксирования и на граничные значения в случае обработки. Чуть что не так - бросается исключение. Если метод с кучкой аргументов на 80% состоит из поверки из аргументов - это вполне норм))
    - Никаких trigger_error, только исключения.
    - Исключения ДОЛЖНЫ быть человеко-понятны, всякие "Something went wrong" можно отдавать пользователю, но в лог должно попасть исключение со стектрейсом и человеко-понятным описанием, что же там пошло не так.
    - Каждый аргумент (объект) метода должен быть с тайпхинтингом на этот его класс, или интерфейс.
    - За eval как правило шлю на **й.
    - @ допускается только в безвыходных ситуациях, например проверка json_last_error.
    - Перед работой с БД - обязательная проверка данных.
    - Никаких == и !=. Со swtich - единственное исключение, по ситуации.
    - Если метод возвращает не только bool, а еще что-то - жесткая проверка с ===, или !== обязательна.
    - Никаких условий с присваиваниями внутри. while($row = ...) - тоже идет лесом.
    - Магические геттеры/сеттеры разрешаются только в безвыходных ситуациях, в остальном - запрещены.
    - Конкатенации в sql - только в безвыходных ситуациях.
    - Параметры в sql - ТОЛЬКО через плейсхолдеры.
    - Никаких глобальных переменных.
    - Даты в виде строки разрешаются только в шаблонах и в БД, в пхп коде сразу преобразуется в \DateTimeImmutable (в безвыходных ситуациях разрешено \DateTime)
    - Конечно зависит от проекта, но как приавло должно быть всего две точки входа: index.php для web и console(или как-то по другому назваться) - для консоли.

    * Кодстайл PSR-2 + PSR-5 как минимум, + еще куча более жестких требований (для начала все то что в PSR помечено как SHOULD - становится MUST)
    - В PhpStorm ни одна строчка не должна подсвечиваться (исключением является typo ошибки, например словарик не знает какой-то из аббревиатур, принятых в вашем проекте). При этом разрешается использовать /** @noinspection *** */ для безвыходных ситуаций.
    - Если кто-то говорит, что пишет в другом редакторе и у него не подсвечивается, на эти отговорки кладется ВОТ ТАКЕЕЕНЫЙ мужской половой **й и отправляется на доработку)).

    * Организация кода:
    - Никаких глобальных функций.
    - Классы без неймспейса разрешаются только в исключительно безвыходных ситуациях.

    * Тестируемость (в смысле простота тестирования) кода должна быть высокая.
    - Покрытие кода обязательно для всех возможных кейсов использования каждого публичного метода с моками зависимостей.

    * Принципы MVC:
    - Никаких обработок пользовательского ввода в моделях, от слова совсем.
    - Никаких ***ть запросов в БД из шаблонов.
    - Никаких верстки/js/css/sql-ин в контроллерах.
    - В моделях НИКАКОЙ МАГИИ, только приватные свойства + геттеры с сеттерами.
    - В моделях разрешено использовать метод save(при наличии такого разумеется) только в исключительных ситуациях. Во всех остальных - либо insert, либо update.

    * Принципы SOLD:
    - Никаких божественных объектов умеющих во все.
    - Если метод для внутреннего пользования - private, никаких public.
    - Статические методы разрешаются только в случае безвыходности.

    * Принцип DRY разрешено нарушать в случаях:
    - Явного разделения обязанностей
    - В тестах (каждый тест должен быть независимым, на сколько это возможно)

    * Работа с БД:
    - Запрос в цикле должен быть РЕАЛЬНО обоснован.
    - За ORDER BY RAND() - шлю на***й.
    - Поиск не по ключам (конечно если таблица НЕ на 5 строк) запрещен.
    - Поиск без LIMIT (опять же если таблица НЕ на 5 строк) запрещен.
    - SELECT * - запрещен.
    - Денормализация БД должна быть обоснована.
    - MyISAM не используется (так уж)) )
    - Множественные операции обязательно в транзакции, с откатом если чо пошло не так.
    - БД не должна содержать бизнес логики, только данные в целостном виде.
    - Не должно быть нецелесообразного дерганья БД там, где без этого можно обойтись.

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

    * О людях:
    - "Я привык писать так и буду дальше" - не вопрос, ревью пройдешь только когда поменяешь свое мнение.
    - "Я пишу в vim-е и мне так удобно" - здорово, код консолью я тоже в нем пишу)) но есть требования к коду, если в них не сможешь - не пройдешь ревью.
    - "Я скопировал этот страшный метод и поменял 2 строчки" - это конечно замечательно, но по блейму автор всего этого метода ты, так что давай без говняшек, хорошо?
    - "Оно же работает!" - вот эта фраза переводится примерно так: "да, я понимаю, что пишу полную хрень, но не могу писать нормально потому, что руки из жо", я правильно тебя понял?))
    - "У меня все работает!" - рад за тебя, а как на счет продакшна?
    - "Там все просто" - не используй слово "просто", от слова "совсем". Вот тебе кусок кода (первого попавшегося с сложной бизнес логикой), где там ошибка (не важно есть она, или нет)? Ты смотришь его уже 2 минуты, в чем проблема, там же все "просто"))

    * Всякое:
    ActiveRecord (это я вам как в прошлом фанат Yii говорю) - полное говно, примите за исходную. По факту у вас бесконтрольно по проекту гуляют модельки с подключением к БД. Не раз натыкался на то, что в тех же шаблонах вызывают save, или update (за такое надо сжигать).
    То, что используется Laravel - это печально((. Что бы выполнить требования приведенные выше, приходится "воевать" с фреймворком.

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

    UPD

    Формализировал данные критерии по ссылочке: https://github.com/index0h/php-conventions
    Ответ написан
    55 комментариев
  • У вас были сомнения на счет своей професии?

    v_sadist
    @v_sadist
    DevOps engineer
    Работал на автопроизводителя, за 3.5 дослужился до SrDBA. Денег все равно платили недостаточно, добавляли хламных тупых задач, не связанных с моей основной деятельностью. Бесило жутко, каждый день вставал на работу с мыслью "на кой ляд ме это нужно". Принял решение уйти, искал другое место, позвали на позицию инженера, подумал, согласился, написал заявление.
    На следующий день ко мне подошел руководитель проектной группы и предложил место менеджера проектов у него. Я тогда отказался, т.к. подписал оффер и грезил о новой работе.
    Вот уже почти полтора года я работаю на новом месте, но думаю постоянно: "А что если бы я согласился?".
    Ну это прошлое, о нем думать бессмысленно.

    А на работе каждый день сомнения, что я не потяну эту задачу, этот проект, эту технологию.
    Пришел, абсолютно не умел писать скриптов, от слова "никак". Каждый день ковырясь в vimе психовал, думал "лох я и придурок, ничего не умею, зря уходил только".
    Сейчас меня за год повысили до Sr Engineer и поставили задачу автоматизировать все задачи путем Ansible.
    Вот теперь каждый день читаю мануалы, смотрю вебинары, пилю плейбуки и думаю "лох я и придурок, ничего не умею, зря брался только".

    В свое время один умный инженер сказал очень правильную мысль: "Работа в ИТ, это когда ты вечно ничего не знаешь, и чем больше ты знаешь, тем больше ты не знаешь."

    Топикстартер, если тебя беспокоит твоя текущая работа, и ты не уверен, что ловишь кайф и микрооргазмы от нее, попробуй в качестве хобби пофрилансить в другой сфере. Попробуй писать бложики, сммчик, дизайн.
    Уже в процессе ты поймешь, что тебе нравится больше.
    Сомнения всегда будут, особенно если ты максималист-перфекционист.
    Ответ написан
    3 комментария
  • Как запитать кулер(478 сокет) через usb?

    eapeap
    @eapeap
    Сисадмин, Беларусь
    Для начала выясните, будет ли крутиться ваш кулер от 5 Вольт. А если будет - хватит ли скорости?
    Подключить просто - распотрошить любой USB провод, соединить красный и черный проводки из провода с желтым и черным от кулера соответственно.
    Ответ написан
    Комментировать
  • Как запитать кулер(478 сокет) через usb?

    POS_troi
    @POS_troi
    СадоМазо Админ, флудер, троль.
    USB - 5в
    Куллер - 12в

    Вывод - напрямую никак, можно воспользоваться DC-DC преобразователем
    Ответ написан
    3 комментария
  • Украли айфон 4, icloud не видит устройство, а ведь он на айфоне. Как же найти теперь айфон?

    Так они восстановили заводские настройки уже наверняка не связанные с вашим icloud, странные, я бы на их месте всю вашу учётку в icloud снёс и всё. Гуглите, забытые пароли к icloud сбрасывают и всё делают ))
    Ответ написан
    4 комментария
  • NVIDIA Shield предотвратить деактивацию?

    @Fixid
    Первый вариант - это починить старый, а новый хранить про запас
    Второй вариант - это подключить старый планшет к виртуалке/другому компу, поставить Firewall с полным ограничением и смотреть какие данные гуляют, потом блокировать команду на активацию/дезактивацию или вобще выход в инет для Nvidia, перенести правила на основной комп, активировать новый и надеяться.
    В самом худшем случае получите кучу расходников
    Ответ написан
    Комментировать
  • Чиним старые наушники? Или постоянно покупать новые?

    chumayu
    @chumayu
    Если в башне по*бень. То что еб*нь, что не еб*нь.
    Часто конечно не использую, но у меня Marshall уже более года - все отлично.
    Ответ написан
    Комментировать
  • Каковы Возрастные ограничения в программировании?

    Rampages
    @Rampages
    Как там поговаривали-то? – "Если очень сильно захотеть, можно в космос улететь"
    В общем нужны следующие скилы:
    1. Терпение
    2. Упорство
    3. Сила воли
    4. Немного логики
    Причем если какой-то из навыков у вас очень сильно прокачан, он может компенсировать недостаток другого. Остальные приобретается эмпирическим путем.

    С возрастом просто появляется больше обременяющих факторов и многие из нас концентрируются на повседневном быту и рутине.
    Ответ написан
    Комментировать
  • Каковы Возрастные ограничения в программировании?

    hronik87
    @hronik87
    Обитаю в 1С-Bitrix
    Раз в день стабильно появляется похожий вопрос. Мне 28, год назад ничего не знал ни о HTML, ни о CSS, ни о JavaScript, ни о PHP. Сегодня работаю в хорошей компании, верстка у меня на твердую 4, JavaScript на 3+(библиотека JQuery в основном, но могу и на чистом написать что-нибудь полезное), PHP начал осваивать месяц назад, но уже есть довольно неплохие результаты. Было ли мне сложно в самом начале? Да! Я не знал ничего об этой сфере. Спал по 4 часа в сутки прямо возле компьютера, шаблон разрывало и я начал уже вслух разговаривать с собой. У меня не стояло выбора поучить сегодня или нет. У меня стоял выбор пойти поссать и дальше учить или все же потерпеть, а потом уже сходить когда невмоготу будет. И я сейчас в той сфере которая мне нравится, я постоянно учусь и я не остановлюсь. Так что если ты уверен, что это твое, то любыми правдами и неправдами учи, старайся, вникай. И все получится)
    Ответ написан
    14 комментариев
  • Каковы стандарты кроссбраузерности на 2015 год?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    В целом IE9+
    Иногда, для крупных порталов, встречается IE8+

    Так же, практически никто больше не поддерживает Opera 12, FF 3.6 и Safari 5.

    Зато сейчас в тренде проверять на мобильных браузерах (iPad, Nexus, Galaxy Tab и т.п.)
    Ответ написан
    1 комментарий
  • Стоит ли покупать видеокарту GTX 660 сейчас?

    @Espleth
    Бедные программисты там в Microsoft, стараются как могут оптимизировать DirectX, чтобы выиграть несколько процентов, а маркетологи там гуляют на широкую ногу и обещают всем прирост производительности в несколько раз.
    А вообще пока DirectX 12 не выйдет, то никто вам точно не скажет, стоит оно того или нет.
    Ответ написан
    2 комментария
  • Трогать фреймворк php или не надо?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    php не для разработки игр (по крайней мере на вашем уровне).
    Хотите писать игры - делайте это на js, хотите изучать php - пишите сайты.
    На данном этапе от фреймворков будет больше вреда, чем пользы - прежде чем учиться бегать, нужно научиться ходить.
    Ответ написан
    Комментировать
  • Из гуманитария в программисты, или как найти работу?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Предложу чуточку нестандартный вариант, вдруг поможет:
    1) Находите интересующие вас компании, где вы бы хотели теоретически работать. Естественно никаких гуглов/ораклов, что-нибудь местное или по удаленке.
    2) Находите собственно их почтовый ящик, на который они принимают письма общего/рекрутингового плана.
    3) Строчите туда письмо "от души". То есть хороший, красивый, структурированный текст, в котором в кратце даете понять что вы из себя представляете, как бы быстро обучаетесь, проводите параллели со своей бывшей работой рекламщика, рассказываете о былых невероятных заслугах и тд и тп. Ну в общем пишите письмо так, что если бы оно пришло например к вам на ящик, то вы бы его полностью прочитали, даже не понимая зачем вам его вообще читать.
    4) Надеетесь на лучшее. И даже если никто не возьмет к себе, то по-любому кто-то любезно ответит "простите, вы конечно классный, но совсем уж новички нам сейчас не нужны". И их можно будет сразу заносить в список, на случай смены работы, когда вы уже наконец-то поработаете на первой работе. + это хорошо повлияет на моральное состояние, ибо все эти топорные отказы по сухим резюме/или вообще отсутствие даже отказов, могут вгонять в депрессию поначалу.
    Ответ написан
    Комментировать