CSO, co-owner в LuckyWare Pro
  • А ви трекаєте задачі?

    Це з ним трапилось починаючи з версіі 10. Можна скачати стару версію і вона працьє нормально. discussion.evernote.com/...​legacy-version-625-until
    Для Android я використовую теж стару версію 8.13.3, скачав десь apk файл.

    Підтримав: El Dan
  • А ви трекаєте задачі?

    дякую, виглядає непогано, може перейду на ньго

  • А ви трекаєте задачі?

    evernote legacy, але можливо перейду на іншу систему, бо починаючи з версії 10 розробка evernote пішла не туди.

    Підтримав: Serge Loboda
  • З 16 липня всі українські сайти мають бути державною мовою

    блін, тут на ДОУ російскою, срочно перекладемо

    Підтримав: Андрій Плотніков
  • З 16 липня всі українські сайти мають бути державною мовою

    А в нас англійскою мовою сайт, мені цей закон не подобається

  • Валютна політика НБУ спричинила палкі дискусії. Що про неї думають економісти та IT-компанії

  • Бий ворога його ж зброєю: Роскомнадзор vs. LinkedIn

    Из английской википедии: Рейд Хоффман — исполнительный председатель LinkedIn. В декабре 2018 года New York Times опубликовала статью, в которой утверждалось, что Хоффман «вложил 100 000 долларов в эксперимент, в ходе которого была применена вдохновленная Россией тактика политической дезинформации в Facebook» во время специальной гонки в Сенат 2017 года в Алабаме, которая якобы была нацелена на избирателей Роя Мура. Хоффман не сразу ответил. Позже в том же месяце он извинился, заявив также, что не знал, чем занималась некоммерческая организация American Engagement Technologies или AET из Вашингтона, округ Колумбия.

  • Как применить Test-Driven Development на практике

    Я в этом не специалист, но придумал как найти. Надо зайти в гугл, набрать linux kernel unit test и кликнуть на первом же результате поиска. www.kernel.org/...​ev-tools/kunit/index.html

  • Как применить Test-Driven Development на практике

    Если бы моей целью было покрыть эту функцию тестами (я не говорю что это надо делать), то первый тест, который бы я написал для функции __lws_close_free_wsi_final проверял бы что ей можно передать NULL и она не крешится.
    Следующий тест проверял бы, что она вызывает wsi->a.context->pt[(int)wsi->tsi]; задав свои заглушки в тесте для a.context и tsi (эти заглушки и есть мок объект конкретно для этого теста). Больше этот тест ничего бы не проверял. И так далее, отдельный тест со своим мок объектом для каждого конкретного теста.

  • Как применить Test-Driven Development на практике

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

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

    Я не специалист в области драйверов. Предполагаю что в коде IRQ необходимо как-то проверить, не вытеснена ли страница из памяти и, если она вытеснена, то подгрузить ее?

  • Как применить Test-Driven Development на практике

    Все правильно, только по TDD интерфейс тоже проектируется в процессе написания теста. Например,
    1. мы пишем тест, который вызывает несуществующий метод.
    2. Тест не компилируется.
    3. Значит переключаемся на написания кода. Пишем объявление несуществующей функции, но функция будет пока с пустым телом (заглушка).
    4. Тест компилируется, таким образом интерфейс доработан.
    Далее, если тесты проходят, вносим следующее изменение в тесты, если не проходят, продолжаем дорабатывать код.

  • Как применить Test-Driven Development на практике

    Возможно здесь вы имеете ввиду интеграционные тесты, а не юнит тесты.
    ru.wikipedia.org/...​теграционное_тестирование
    ru.wikipedia.org/...​ki/Модульное_тестирование

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

  • Как применить Test-Driven Development на практике

    В случае, когда железо еще не изготовлено, а код писать уже надо, или железо есть, но доступ к нему ограничен поскольку разработчиков много а железо только в одном экземпляре, в этих случаях очевидно, что юнит тесты становятся намного полезнее

  • Как применить Test-Driven Development на практике

    Вопрос не имеет отношения к правильному применению TDD. Mock объекты для каждого конкретного теста не эмулируют полное поведение ядра, а возвращают нужные для этого теста конкретные значения для конкретных входных данных, которые передаются mock-объекту именно в этом тесте. Не могу представить, зачем может понадобится эмулировать выделение памяти, вытеснение страничек из памяти, даже в тесте для драйвера. При работе с железом пример хороший, но надо придумать конкретный пример, функциональности, которую мы хотим тестировать. Опять же, mock-объект для конкретного теста будет возвращать фиксированные значения, которые ожидаются от железа при тех конкретных воздействиях, которым железо будет подвергаться именно в этом тесте. То есть, mock-объект, это просто заглушки, которые возвращают константы.

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

  • Как применить Test-Driven Development на практике

    У меня противоположное мнение по этому вопросу

  • Как применить Test-Driven Development на практике

    Сперва декомпозируем техническое задание на фичи и заводим их в любимый баг-трекер в виде тасок.
    Также нужно правильно распределить приоритеты тасок: не делаем фичу Б, если она не может работать без фичи А — сначала делаем фичу А.
    Далее пишем модульные тесты на первую фичу и проверяем, проходят ли они. Это своего рода тестирование самих тестов. Желательно написать сразу позитивный и негативный тест под фичу.
    Приступаем к написанию кода бизнес-логики. Код фичи готов, когда все тесты пройдены.
    Рефакторим код, если это нужно.
    Повторяем цикл с новой фичей.

    Я не согласен с таким пониманием основного цикла TDD. Вот как по моему мнению его понимал Кент Бек (ru.wikipedia.org/wiki/Бек,_Кент) и понимаю и выполняю его я и рекомендую всем понимать его именно так:
    1. Убедится что все тесты проходят
    2. Написать минимальный тест который падает или внести минимальное изменение в существующий тест, чтобы он упал.
    3. Максимально быстро, не думая о качестве кода, внести минимальное изменение в код, такое чтобы тест перестал падать, причем добавлять только код, необходимый для того чтобы тест прошел и не добавлять код, который «все равно понадобится»
    4. Убедится что все тесты проходят
    5. Провести рефакторинг
    6 Вернуться к началу цикла

    Весь цикл в идеале должен занимать две минуты.

  • $500–2000 за приєднання до IT-компанії. Що таке sign-on бонуси та чому їх платять усе частіше

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

  • $500–2000 за приєднання до IT-компанії. Що таке sign-on бонуси та чому їх платять усе частіше

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

    Наша компания существует с 2007 года, и пока такого не случилось. У нас не один заказчик, а несколько, а когда проект закрывался, то те люди, что освободились, распределялись по другим проектам. Иногда увольняли отдельных программистов после закрытия проекта, но никогда не увольняли кого-то, работой которых мы были полностью довольны.

  • $500–2000 за приєднання до IT-компанії. Що таке sign-on бонуси та чому їх платять усе частіше

    Я думаю, имеется ввиду, что если кандидат понимает, что это стандартная манипуляция с использованием принципа «дефицита времени», то ему или ей это может не понравиться.

    Підтримали: Senseye, Marian Tarnavskyi
  • $500–2000 за приєднання до IT-компанії. Що таке sign-on бонуси та чому їх платять усе частіше

    Мы ввели недавно другой бонус: за выполнение самого сложного из наших тестовых заданий. Бонус выплачивается даже за нерабочее решение, но только в том случае, если мы НЕ БЕРЕМ человека на работу.

    Підтримав: Yevhen Nedashkivskyi
← Сtrl 12 Ctrl →