Шутеечка.Ru

Shuteechka.Ru

Самые популярные комментарии пользователей Рунета: сайт о юморе, психологии, бизнесе, политике, кино, автомобилях, играх и многих других популярных темах

Поиск по тэгу хабрахабр

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


    В этой статье не будет субъективной оценки cms или компании, только сухие факты и мысли, которые помогут зарабатывать на модулях. Мы перечислим те моменты, которым нас научил наш собственный опыт продажи модулей через Маркетплейс. Некоторые из них кажутся очень очевидными и общими, другие же наоборот являются очень специфичными для платформы, но они все относятся к работе над модулями Битрикс, и поэтому включены в список.


    Эта статья будет полезна тем, кто хочет начать продавать свои модули на Маркетплейсе или продвигать свою фирму с его помощь.

    Дата публикации: 17.10.2017 19:05

    Читать далее

    Люди очень часто неправильно думают про статический анализ кода.

    Часто можно встретить такое мнение, выраженное в следующем абзаце:

    У нас большой проект. В нем работает несколько десятков (сотен) программистов. То есть тот самый, про который вы пишите, что нужен статический анализ. Я скачал анализатор кода, выполнил проверку и нашел очень мало ошибок. Очевидно, что анализатор кода просто бесполезен!

    Дата публикации: 17.10.2017 13:35

    Читать далее



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

    shuvaevgl | 2017-10-16 13:19:00

    По этому поводу есть характерный анекдот.


    — Что надо сделать для того чтобы спутники успешно выходили на орбиту?
    — Отправлять их туда вместе с их разработчиками.

    Лайков : 13
    Ссылка на ветку ответов к данному комментарию.

    habradante | 2017-10-16 15:05:00

    Я помню как-то давно обсуждал ТЗ с заказчиком по проекту. Обговорили функционал, описали в общих чертах. Потом я с командой обсудил, описал все технические моменты. В общем, все было весьма точно и без «тяп-ляп». Принес заказчику, он увидел, обрадовался. И я говорю:
    — Ну что, подписываем и мы принимаемся за работу?
    — Да, отлично! Если что-то еще изменится, я позвоню.
    — Как изменится? Мы же уже ТЗ подписываем, на этом этапе уже ничего не должно меняться, будет реализовано как описано. Если вдруг что-то нужно будет, то мы готовы по доп. соглашению отдельно потом реализовать.
    — Т.е. за дополнительные деньги?
    — Конечно. Текущая стоимость покрывает только то, что описано в ТЗ.
    — А вдруг я что-то упустил или мне надо будет что-нибудь поменять?
    — Так для этого вы же и брали время на изучение ТЗ.
    — Ну, я его изучал, но не с этой стороны. Там все, как-то, слишком досконально, я не вчитывался так глубоко. Может мы более общие моменты утвердим, чтобы, так сказать, иметь свободу в деталях?

    С тех пор, сколько я ни смотрю на ТЗ, понимаю, что большинство, с обоих сторон, умышленно оставляют себе «свободу в деталях». И в ТЗ смотрят, когда либо проект очень большой и ответственный, либо хотят «продавить» контрагента.

    Лайков : 9
    Ссылка на ветку ответов к данному комментарию.

    niko1aev | 2017-10-16 16:24:00

    4 года я был аналитиком и руководителем проектов.
    И я считал свои ТЗ отличными и понятными. Я правда над этим много работал. Например, мне однажды попадалась подробная анкета на верстку от топового фрилансера на fl.ru, с 500+ положительными отзывами. Анкета состояла из 30+ пунктов поверх очень хороших макетов. Я из нее взял пунктов 10, и стал использовать на всех этапах, от ТЗ до приемки.

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

    Например в ТЗ есть форма регистрации на 5 полей
    99% ТЗ содержат перечень полей:
    *Имя
    *Email
    День рождения
    Телефон
    Комментарий
    Город

    И поставив звездочки около имени и email заказчик, считает, что уже достаточно описал форму. И если есть moqups или дизайн формы — то вообще какие тут могут быть еще вопросы. А так как в его «сайте/портале/CRM/ERP...» таких форм десятки, а страниц десятки типов, то ТЗ уже и так на 50-100 страниц. А значит достаточно подробное)

    Что же мы забыли

    • Валидации полей на типы
    • Валидации полей на лимиты (вряд ли 1800 год рождения — нормально)
    • Валидации полей на уникальность (ну это же очевидно)
    • Где проходит эта самая валидация(на сервере, или в браузере; понятно, что уникальность email мы не можем проверить в браузере, а вот желание проверять валидность и обязательность полей в браузере хорошо бы указать)
    • Ошибки валидации (и даже если попросить их указать, вряд ли вы увидите две разные ошибки на невалидный email и уже существующий)
    • А еще мы забыли уведомления на email, подтверждения телефона, восстановление пароля, авторизацию через соцсети и т.д. И каждый из этих пунктов — это формы, валидации, проверки, тексты ошибок, редиректы после успеха и неуспеха
    • А еще самый коварный вопрос: при авторизации через соцсети, если пользователя с таким email нет, то отказывать в авторизации или создавать нового пользователя? А письмо ему на email в этом случае надо отправлять или нет?


    99% заказчиков и 95% аналитиков неспособны на таком уровне проработать ТЗ
    Заказчики не могут, потому что не понимают уровень детализации, и у них нет времени, а аналитики, потому что чаще всего это просто вчерашние секретари/секретарши, помощники/помощницы. Которые внезапно для себя делают сайт/портал и теперь пишут к нему ТЗ. Как умеют.

    Какие из всего этого я сделал выводы для себя?
    Неважно какую роль я играю: аналитик, заказчик, программист, руководитель проекта — если я вижу, что ТЗ содержит тонны подводных камней, я сажусь и вместе в диалоге его прорабатываю. Как с тем, кто является для меня заказчиком, так и с тем, кто является для меня исполнителем.
    Нет никакого смысла отправлять заказчика доделывать ТЗ, со словами «ТЗ мутное». Он не будет его доделывать, а просто найдет того, кто будет с таким работать. Наступит на все грабли, и справедливо будет считать всех программистов козлами. А ведь у него был шанс, поработать с хорошим программистом, который поможет сделать ТЗ не мутным.
    Также нет никакого смысла отдавать все на откуп разработчикам с мыслями: «Форма регистрации, табличка отзывов, страница профиля — это же так стандартно. Что тут может быть непонятно.» Разработчик в 99% сделает как он делал в прошлом проекте, или как принято в его стеке технологий, или как ему проще и нравится. Его «нравится» редко когда совпадает с чувством прекрасного у заказчика.
    И нет никакого смысла вылизать сразу все ТЗ на 3ё500 страниц.

    Мой рецепт:
    • Разбить проекты на части
    • Выбрать 1 часть. В начале желательно важную для проекта
    • Детально описать
    • Сделать 50%. Задать появившиеся вопросы
    • Доделать, показать, получить правки, доделать
    • Взять следующую часть

    А еще очень важен постоянный диалог в стиле:
    «Мы разбили проект/задачу на 7 частей. Первая часть займет неделю. Мы подготовили вопросы по ней. Сейчас проговорим детали.… (после того, как проговорили детали) Дня через три мы придем с новой порцией вопросов по первой части. А в начале следующей недели так же будем прорабатывать часть 2, подготовьте свои соображения, мы подготовим наши вопросы». И опять же это касается любого участника процесса: как заказчика, так и руководителя проекта, и тимлида, и разработчика, и дизайнера, и даже верстальщика.

    Известно, что энтропия (в данном случае мера бардака в проекте) сама увеличивается, если не прикладывать осознанных усилий к её уменьшению. Так что помогают только осознанные усилия, диалоги, контроль, согласования, умелое отстаивание уже утвержденного, выкидывание лишнего. И только, если все это для уменьшения энтропии, а не снятия отвественности и оставления для себя свободы деталий и вариантов «нагнуть другую сторону»

    Лайков : 8
    Ссылка на ветку ответов к данному комментарию.

    mayorovp | 2017-10-16 13:45:00

    Я разработчик, и я с ТЗ не работаю. Вместо этого я работаю по постановкам, написанным аналитиками. И там зачастую написана какая-то хрень. Есть у нас пять аналитиков, которые умеют писать постановки, остальные пишут дикую хрень.


    Когда мне прилетает слишком дикая постановка — я отказываюсь по ней работать пока ее не приведут в порядок (при поддержке начальника отдела и ведущих программистов), одного аналитика я так довел до слез. Но чаще бывает что постановка в целом понятная, но пара абзацев в ней — хрень. Или мне нужно исправить баг в программе, которую писал кто-то другой… по постановкам в которых была написана хрень.


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


    Разновидности хрени:


    1. Код прямо в постановке


    К примеру, однажды мне довелось чинить ETL-процедуры. На каждую из них была написана постановка, в которой был приведен код SQL-запроса который нужно было выполнить. И этот запрос на сотню строк работал неправильно: либо пропускал строки, либо дублировал их, либо просто выполнялся слишком долго. Ну и как его чинить-то когда он записан в требованиях?


    И даже если опустить формальности — как понять что этот код должен был делать?


    2. Ритуальные заклинания


    Когда делается много типовых модулей — то программисты выносят повторяющиеся вещи в компоненты или подпрограммы. А в постановках аналитики обычно используют копи-паст. Подобные блоки скопированного текста превращаются в ритуальные заклинания, сопровождающие каждую новую постановку. И когда в очередной постановке эти заклинания оказываются чуть-чуть в другом порядке — никто этих изменений не замечает пока не прилетает блокер с прода.


    3. Копи-паст внутри постановки


    Допустим, есть объекты пяти разных типов, которые нужно обрабатывать одинаково, и еще один тип объектов с особой обработкой. Что делает аналитик? Он копирует описание первого типа объектов 4 раза, исправляя название.


    А потом программисту надо в уме делать дедупликацию. Иногда получается неудачно.

    Лайков : 5
    Ссылка на ветку ответов к данному комментарию.

    DSolodukhin | 2017-10-16 13:26:00

    С ними есть сложность: они как посмотрят на ТЗ, в котором есть мутные места, так сразу говорят: “Тут какой-то бред, я с таким не работаю!”

    Хм, аналитик написал мутное ТЗ, но виноват разработчик? Интересно.
    Я, как разработчик, не работаю с мутным ТЗ, потому что не понятно, что именно я должен сделать. Я понял написанное вот как-то так, аналитик имел в виду другое, а заказчик вообще хотел третье. Написано ТЗ непонятно, неоднозначно или неполно, я иду и пинаю аналитика, чтобы у меня было полное, ясное и однозначное ТЗ, это его работа в конце концов.
    Может быть я работаю в какой-то особой конторе, но у нас если реализация отличается от описанного в ТЗ, то её просто не пропустит QA и отправит обратно на доработку.

    Лайков : 3
    Ссылка на ветку ответов к данному комментарию.

    Mexis | 2017-10-16 13:45:00

    ТЗ высокой чёткости требует высокого опыта разработки. Нельзя написать чёткое ТЗ на средний проект простому смертному и не забыть ничего. Я в разработке уже 15 лет и сколько бы не стралася довести ТЗ до идеала, всё равно есть просчёты с которые попросту не учёл. И это не связанно с тем, что мало опыта, просто на большенство клиентов не хочет платить за потраченное время на написание ТЗ, по этому пишется сокрашённая версия с десяток страниц и всё. А далее уже всё в процессе, ну всё самое важное и значимое естественно расписанно…

    Лайков : 3
    Ссылка на ветку ответов к данному комментарию.

    evgenicx | 2017-10-16 13:45:00

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

    Лайков : 3
    Ссылка на ветку ответов к данному комментарию.

    CheY | 2017-10-16 20:33:00

    Уже 5+ лет занимаюсь работой аналитика. Поработал с разработчиками от разных «полюсов»: как с теми, которые будут докапываться до каждой фразы, причём не стесняясь в выражениях и зачастую с большой долей высокомерия, так и с теми, которым ТЗ не нужен — достаточно постановки и времени на обсуждение.
    Особая острота к работе добавляется, когда у тебя есть определённые компетенции в разработке, особенно в используемом в работе стеке. Как экстремальная форма ситуации — когда разработчики настолько плохи, что даже ты со своими «домашними проектами» их превосходишь в их области (при аутсорсе встречались такие). С одной стороны это огромный плюс — ты способен оценить сложность реализации того, что ты описываешь, ещё до оценки разработчиками, ты знаешь какие вещи реализуемы, какие сложнореализуемы, а какие просто невозможны, ты знаешь, где что-то может пойти не так и где требуется уточнение поведения. С другой стороны, ты «всего лишь» аналитик — большинство разработчиков встретит вторжение в сферу своей ответственности от тебя со скепсисом (осторожностью/враждебностью/возмущением). В итоге приходится постоянно лавировать между «тем, что ты знаешь» и «тем, что от тебя ждут», зарабатывать доверие разработчиков и бороться с внутренним конфликтом «брошу всё уйду в разработчики». К сожалению, это очень распространённая проблема разработчиков — недоверие к опыту не-разработчиков. Впрочем, объяснимая — аналитиков, которые пишут совершенно поверхностные ТЗ очень много.
    Для себя я решил, что идеальная работа — это работа с командой, которая прежде всего всегда готова к обсуждению и готова к свободе своих действий в обмен на риск что-то выбросить и переписать. Можно называть это agile, можно lean, можно даже «пиши код бл*ть» — в любом случае нужно принять возникновение ошибок как что-то неотвратимое и постараться сэкономить время на попытках их предотвратить, потратив это время на создание функциональности. Ну, и мотивация всех на конечный результат, а не закрытие тасков в трекере. Пусть даже внутренняя.

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 17.10.2017 13:35

    Читать далее


    Директор Акселератора ФРИИ Дмитрий Калаев рассказал на онлайн-конференции «Как построить бизнес на основе технологии» о типах конкурентных преимуществ технологичных стартапов, как сформулировать ценность и конкурентное преимущество, которые помогут в продаже продукта клиентам, и в какой момент компании стоит задуматься о масштабировании.

    Дата публикации: 17.10.2017 13:35

    Читать далее

    Глубока ли кроличья нора?

    image

    Сколько минут вам потребуется, чтобы понять в чем фишка?

    Фрэнсис Бэкон в 1620 году разделил источники человеческих ошибок, стоящих на пути познания, на четыре группы, которые он назвал «призраками» или «идолами» (лат. idola).

    • «Призраки рода» проистекают из самой человеческой природы, они не зависят ни от культуры, ни от индивидуальности человека. «Ум человека уподобляется неровному зеркалу, которое, примешивая к природе вещей свою природу, отражает вещи в искривлённом и обезображенном виде».
    • «Призраки пещеры» — это индивидуальные ошибки восприятия, как врождённые, так и приобретённые. «Ведь у каждого, помимо ошибок, свойственных роду человеческому, есть своя особая пещера, которая ослабляет и искажает свет природы».
    • «Призраки площади (рынка)» — следствие общественной природы человека, — общения и использования в общении языка. «Люди объединяются речью. Слова же устанавливаются сообразно разумению толпы. Поэтому плохое и нелепое установление слов удивительным образом осаждает разум».
    • «Призраки театра» — это усваиваемые человеком от других людей ложные представления об устройстве действительности. «При этом мы разумеем здесь не только общие философские учения, но и многочисленные начала и аксиомы наук, которые получили силу вследствие предания, веры и беззаботности». [Wikipedia]


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

    Дата публикации: 17.10.2017 08:00

    Читать далее

    Интернет замер в ожидании релиза proof-of-concept эксплоита под названием KRACK (аббревиатура от Key Reinstallation Attacks). Дело в том, что в минувшие выходные стало известно, то сводная группа специалистов готовит скоординированное раскрытие информации о неких критических проблемах WPA2, которые позволяют обойти защиту и прослушивать Wi-Fi-трафик, передаваемый между точкой доступа и компьютером.


    Формально исследователи расскажут о найденных ими уязвимостях лишь 1 ноября 2017 года, на конференции ACM CCS. На мероприятии будет представлен доклад, озаглавленный Key Reinstallation Attacks: Forcing Nonce Reuse in WPA2 («Атака на реинсталляцию ключей: принудительное повторное использование nonce в WPA2»).

    Antxak | 2017-10-16 13:16:00

    Технические подробности уже раскрыты, можно ознакомиться.
    papers.mathyvanhoef.com/ccs2017.pdf

    Лайков : 2
    Ссылка на ветку ответов к данному комментарию.

    Дата публикации: 16.10.2017 19:10

    Читать далее

    Когда речь заходит о роуминге, под этим понятием обычно скрывается два различных процесса. В мире сотовых сетей, который пришёл к нам раньше, под роумингом подразумевается способность работать в «чужой» сети, а вовсе не бесшовная миграция между базовыми станциями (handover). Незаметное перемещение между БС сотовой сети настолько естественно, что о нём вообще мало вспоминают.

    В мире WiFi дела обстоят иначе, и под роумингом обычно подразумевают незаметное для пользователя перемещение между точками доступа одной сети — BSS transition, хотя повсеместное введение SMS-авторизации в ближайшем будущем должно подтолкнуть операторов к внедрению стандарта роуминга между чужими сетями WiFi в стиле сотовой инфраструктуры и на базе её идентификации.

    Далее следует описание существующих технологий роуминга и способы их выявления на незнакомом оборудовании, предполагается, что читатель знаком с базовыми принципами работы WiFi.

    Дата публикации: 16.10.2017 19:10

    Читать далее



    Я полтора года мучился с одной неприятной особенностью ubuntu под vagrant — чертовски медленная расшаренная папка. Простые бенчмарки показывали просадку производительности I/O операций почти на 2 порядка, проекты на php работали до 10 раз медленнее чем на нативном хосте. Так вот, сегодня я задолбался окончательно, хорошо поискал… и оказалось что есть решение, и теперь я просто не могу не поделиться им с кем-то. Решение простое, кому-то покажется очевидным, кто-то знал о нём с рождения (ну или будет так утверждать), но я уверен что знают о нём не все.

    Дата публикации: 16.10.2017 19:10

    Читать далее


     
    Группа исследователей обнаружила серьезные недостатки в протоколе WPA2, обеспечивающем защиту всех современных Wi-Fi сететй. Злоумышленник, находящийся в зоне действия жертвы, может использовать эти недостатки, используя Key Reinstallation Attacks. Злоумышленники могут использовать этот новый метод атаки для чтения информации, которая ранее считалась зашифрованной.

    Дата публикации: 16.10.2017 13:35

    Читать далее

    До релиза Firefox Quantum остаётся всё меньше времени. Он принесёт множество улучшений в производительности, в том числе сверхбыстрый движок CSS, который мы позаимствовали у Servo.

    Но есть ещё одна большая часть технологии Servo, которая пока не вошла в состав Firefox Quantum, но скоро войдёт. Это WebRender, часть проекта Quantum Render.



    WebRender известен своей исключительной скоростью. Но главная задача — не ускорить рендеринг, а сделать его более плавным.

    При разработке WebRender мы поставили задачу, чтобы все приложения работали на 60 кадрах в секунду (FPS) или лучше, независимо от размера дисплея или от размера анимации. И это сработало. Страницы, которые пыхтят на 15 FPS в Chrome или нынешнем Firefox, летают на 60 FPS при запуске WebRender.

    Как WebRender делает это? Он фундаментальным образом меняет принцип работы движка рендеринга, делая его более похожим на движок 3D-игры.

    Дата публикации: 16.10.2017 13:35

    Читать далее


Обратная связь

© 2017 Шутеечка точка Ru

Популярный коммент за день

javaharlalunero | 16.10.2017

Это говорит то самое МВД, которое возбуждает дела за лайки и репосты?


Россия - страна чудес

Лайков: 1506
Перейти к новости в блоге....

Популярные тэги

пикабу youtube ютуб фишки.net гифки geektimes текст хабрахабр секретфирмы длиннопост

Популярные публикации за неделю

Мировой ядерный арсенал. - пост с сайта Пикабу: Перейти...
Концепт-арт "Человек-сосед" - пост с сайта Пикабу: Перейти...
Вас таких вся Россия. - пост с сайта Пикабу: Перейти...
Дура за рулем - пост с сайта Пикабу: Перейти...
Авария - пост с сайта Пикабу: Перейти...


Навигация