Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.168] |
|
Страницы: (11) 1 [2] 3 4 ... 10 11 все ( Перейти к последнему сообщению ) |
Сообщ.
#17
,
|
|
|
Подобные загоны мешают развиваться. А так же воспринимать конструктивную критику. А так же вредят командной работе (если таковая у тебя есть). |
Сообщ.
#18
,
|
|
|
Цитата D_KEY @ Подобные загоны мешают развиваться. А так же воспринимать конструктивную критику. А так же вредят командной работе (если таковая у тебя есть). Мне начать применять антипатерны или перестать применять нужные структуры данный, или перестать следить ворнингами? Начать применять оверхед? И тогда Я стану быстро развиваться |
Сообщ.
#19
,
|
|
|
sergioK, нет, нужно перестать думать, что ты не умеешь криво писать. Идеальный код недостижим, каждому есть куда расти.
Добавлено Цитата sergioK @ или перестать следить ворнингами? Лучше фейлить сборку по ворнингам, чем руками следить за ними. |
Сообщ.
#20
,
|
|
|
Ну вот мы, к примеру, буквально сегодня отклонили ответ разработчиков на дефект. У них 2-хбитное поле в структуре int, в него пишется 3, дефект в неравенстве этого поля 3 после такого присваивания, ибо там -1 выходит. Ответили, мол, мы знаем, так и задумано, битовое представление совпадает. Аха, счас, разбежались.
А насколько часто ты сталкиваешься с арифметическим переполнением, sergioK? Добавлено Если серьёзно... Цитата sergioK @ Если ПО относится к высококритичному, ты заманаешься его писать, тестировать и сертифицировать. В прошлый наш проект на одну из функциональностей на ~475Кб сырцов (с комментами и пустыми строками, шапками трассировкой на требования итп) мы только по завершению этапа тестирования отгрузили тестов с их результатами на 187Мб, а общий объём отчётов по этапу верификации составил чуть меньше 2Гб. И это только наша сторона процесса без планов, аудита, анализов и рассмотрения, ревью итп, а сколько туда добавили подрядчики, я без понятия.но вот делаешь ты сыну операцию, а врач говорить подождите сбой компа, и ты видишь краем глаза,segmentation fault, то есть какой то поц забыл память выделить, а QA хз куда смотрел К тому же у любого такого ПО есть чёткие требования к программно-аппаратному окружению. На первом попавшемся ноуте с АЛИшки под свежайшей Убунтой его запустить обычно беспроблем, вот только первый попавшийся ноут со свежайшей Убунтой 100пудово не будет соответствовать правилам эксплуатации этого ПО. И в этом случае все вопросы к врачу или его начальникам, по тех.обеспечению в частности. И не дай бог там внезапно обнаружится когда-то вставлявшаяся флешка или некогда активный клиент телеги. Обычно такое делают просто невозможным, но если вдруг врач хакер... Но вообще, если такие вылеты допустимы, значит некритично. Оценка критичности лежит на заказчике и прописывается в ТЗ, и чёрта с два он её укажет занижено или сертификат будет получен без следования отраслевым стандартам. Даже у нас, ибо никто не захочет садиться на пожизненно, это эму не ведро алмазов с рудников стырить. Цитата sergioK @ Кроме нас, его верифицировать имеют право только ещё несколько контор в Москве. Даже за Питер не скажу, не слышал. Разрабатывать же... скажем так: в начальную разработку можно взять кого угодно, но вытянуть весь жизненный цикл смогут лишь единицы. ...ну запихнули там string в long, так тебе сбой сердца ошибочно определили, ну полежал дня четыре пока не выяснили , не работал ну потерял контракт, приятно ? ... И дело тут не в качестве кода и навыках программеров, а в правилах, диктуемых стандартами. Ты просто не представляешь себе, что такое высококритичное ПО. Твой опыт качественного программирования там будет играть очень небольшую роль. |
Сообщ.
#21
,
|
|
|
ФП-шники используют связные списки постоянно. |
Сообщ.
#22
,
|
|
|
Цитата D_KEY @ sergioK, нет, нужно перестать думать, что ты не умеешь криво писать. Идеальный код недостижим, каждому есть куда расти. Криво и не идеальный код это разные вещи, как говорят в шахматах, без ошибочных партий не бывает, есть разная степень ошибочности, Добавлено Цитата Qraizer @ А насколько часто ты сталкиваешься с арифметическим переполнением, sergioK? Добавлено Если серьёзно... Цитата sergioK @ Если ПО относится к высококритичному, ты заманаешься его писать, тестировать и сертифицировать. В прошлый наш проект на одну из функциональностей на ~475Кб сырцов (с комментами и пустыми строками, шапками трассировкой на требования итп) мы только по завершению этапа тестирования отгрузили тестов с их результатами на 187Мб, а общий объём отчётов по этапу верификации составил чуть меньше 2Гб. И это только наша сторона процесса без планов, аудита, анализов и рассмотрения, ревью итп, а сколько туда добавили подрядчики, я без понятия.но вот делаешь ты сыну операцию, а врач говорить подождите сбой компа, и ты видишь краем глаза,segmentation fault, то есть какой то поц забыл память выделить, а QA хз куда смотрел К тому же у любого такого ПО есть чёткие требования к программно-аппаратному окружению. На первом попавшемся ноуте с АЛИшки под свежайшей Убунтой его запустить обычно беспроблем, вот только первый попавшийся ноут со свежайшей Убунтой 100пудово не будет соответствовать правилам эксплуатации этого ПО. И в этом случае все вопросы к врачу или его начальникам, по тех.обеспечению в частности. И не дай бог там внезапно обнаружится когда-то вставлявшаяся флешка или некогда активный клиент телеги. Обычно такое делают просто невозможным, но если вдруг врач хакер... Но вообще, если такие вылеты допустимы, значит некритично. Оценка критичности лежит на заказчике и прописывается в ТЗ, и чёрта с два он её укажет занижено или сертификат будет получен без следования отраслевым стандартам. Даже у нас, ибо никто не захочет садиться на пожизненно, это эму не ведро алмазов с рудников стырить. Цитата sergioK @ Кроме нас, его верифицировать имеют право только ещё несколько контор в Москве. Даже за Питер не скажу, не слышал. Разрабатывать же... скажем так: в начальную разработку можно взять кого угодно, но вытянуть весь жизненный цикл смогут лишь единицы. ...ну запихнули там string в long, так тебе сбой сердца ошибочно определили, ну полежал дня четыре пока не выяснили , не работал ну потерял контракт, приятно ? ... И дело тут не в качестве кода и навыках программеров, а в правилах, диктуемых стандартами. Ты просто не представляешь себе, что такое высококритичное ПО. Твой опыт качественного программирования там будет играть очень небольшую роль. Вообще не сталкиваюсь, нету у меня таких задач, когда задача встанет начну думать, читать маны, особенности языка , компилятора и т,д, Добавлено Цитата Qraizer @ И дело тут не в качестве кода и навыках программеров, а в правилах, диктуемых стандартами. Ты просто не представляешь себе, что такое высококритичное ПО. Твой опыт качественного программирования там будет играть очень небольшую роль. для меня качественное программирования это и есть следование правилам диктуемых стандартами, у нас есть выражение - баг в дизайне зыбь в дебаге зыбь по-арабски, это слово нецензурное из трех букв Добавлено Цитата Qraizer @ Разрабатывать же... скажем так: в начальную разработку можно взять кого угодно, но вытянуть весь жизненный цикл смогут лишь единицы. ... Ну я вытягиваю, в тех задачах что мне надо, конечно с неточностями, я же не супермер, Вот тебе живой пример, буквально два месяца назад, решили на passwowd regex добавить, Я первое что попросил у VPR&D это день на мануалы DB, не дали сказали не надо, а там центральное место в системе, пришлось кучу тестов писать, неделю, а надо было в DB поле поставить типа regex, перегрусить стандартный метод фраймворка кинуть exception в методе, все кто вызвывают обязаны будут его обработать,компайлер заставит, работы на день ну два, ну три с учетом изучения, три программера на проэкте были еще двое до меня ушли, и шеф, так ни один не думал об этом, неделю с лишним возился, и БД в облаке, каждый вызов 10-12 секунд ждешь, нет чтобы локально поставить, один по образованию психолог-математик, другая экономист , третий физик, мозги и них в порядке но их никто не учил писать грамотно, взяли RDBMS а там 4Т ограничение и никто не думал, как ты думаешь качественный продукт выйдет у них ? Если вообще выйдет, Мой же джун написал скрипт для винды а потом для Мэка потребовался, вот теперь две версии, нк он ладно не знал, он хотел писать на Питоне но ему сказали что в Винде нет Питона версии 3,0, ну ландо допустим не знали, но прочитать то можно , потратив по-часа времени, И как вот такое коментировать без мата ? Добавлено Цитата applegame @ ФП-шники используют связные списки постоянно. Цитата linked lists seen to be of more interest in functional languages, eg the default seq implementation in Scala is a linked list. Это юмор такой? и кто это ФП-шники? |
Сообщ.
#23
,
|
|
|
applegame, там речь не про связные списки вообще, а про java.util.LinkedList
https://twitter.com/joshbloch/status/584272581320052736?s=21 Цитата Don't get me wrong; I love linked lists. They're as useful in C as they are in Scheme. But LinkedList is another matter entirely. |
Сообщ.
#24
,
|
|
|
Цитата korvin @ applegame, там речь не про связные списки вообще, а про java.util.LinkedList https://twitter.com/joshbloch/status/584272581320052736?s=21 Цитата Don't get me wrong; I love linked lists. They're as useful in C as they are in Scheme. But LinkedList is another matter entirely. Ну, я бу не сказал, что двусвязные списки это "another matter entirely". Или я что-то недопонял? Они конечно реже используются чем односвязные, но тоже хороши, и их использовал для оптимизации обхода бинарного дерева. |
Сообщ.
#25
,
|
|
|
Цитата sergioK @ И слава богу, что нет. Желаю тебе, чтоб никогда и не было. Это очень скучное и неблагодарное дело. Если когда-либо сталкивался с продуктами с требованиями работоспособности 24/7, то это ерунда по сравнению с требованиями к высококритичному ПО. Вообще не сталкиваюсь, нету у меня таких задач, когда задача встанет начну думать, читать маны, особенности языка , компилятора и т,д, Добавлено Просто для оценки планок. Когда-нибудь приходилось выкладывать в систему контроля версий объектный код и ассемблерные листинги с трассировкой на сырцы? Благо многие компиляторы это почти умеют сами. Почти. Учитывал ли реакцию твоего кода на INF и NaN? И вообще, приходилось ли обеспечивать сохранение работоспособности кода при любых невалидных воздействиях извне и немедленно возвращать свои выходы в номинальные диапазоны по прекращению невалидных воздействий? Приходилось ли собирать 100% структурное покрытие кода по MC/DC? Всего кода, не только твоего авторства. Объектного, не исходного. (Последнее, правда, обязательно только для уровня критичности level A.) Приходилось ли отказываться от стандартных библиотек и писать свои аналоги? Ради как раз 100% покрытия. Приходилось ли отказываться от некоторых возможностей языка, которые как раз и введены в основном ради отказоустойчивости? И всё из-за пресловутых 100%. Использовались ли методы доказательства корректности кода с опорой на тесты как доказательную базу? Именно доказательную, а не вероятностную. Общая алгебра, теория групп. Использовались ли математические методы доказательства правильности разработанных алгоритмов? Использовались ли методы доказательства корректности реализаций этих алгоритмов? Даташиты, официальные мануалы, стандарты языков и стандарты кодирования + теория множеств и формальная логика. Не превышал ли суммарный объём работ по документированию продукта на два порядка работы по разработке и тестированию этого кода? Тесты писаны вручную и без использования любых средств автоматизации, основанных на изучении кода? Тесты, созданные на основе задокументированного поведения кода, которое в свою очередь выполнено на человеческом языке, исполнялись и получали результаты на основе реального поведения объектного кода, из системы контроля версий который? Подвергались ли любые инструменты, как собственной разработки, так и сторонние, включая компиляторы, загрузчики, генераторы отчётности итп, процедурам квалификации, на основе результатов которых на них выдавалось заключение о том, что они подходящи для применения в сфере высококритичного ПО, и полученным с их помощью результатам можно доверять при условии невыхода условий их эксплуатации за указанные в заявке на квалификацию рамки? На закуску: приходилось ли проектировать системы с учётом возможных неизвестных аппаратных багов в процессорах? Добавлено Я ж говорю, колибри не полетит. А что за дроздов... уверен, sergioK, и непротекающий водопровод ты сумеешь спроектировать с логгированием всех подозрительных событий, и безопасный к взрывам газопровод в квартиру проведёшь, и отказоустойчивую аутентификацию наладишь. Почти уверен. И стоить это будет $49.95 за копию. Нехрен ни к селу ни к городу троллей цитировать, ты ж и сам знаешь, что это всё враки. |
Сообщ.
#26
,
|
|
|
Цитата Qraizer @ Учитывал ли реакцию твоего кода на INF и NaN? И вообще, приходилось ли обеспечивать сохранение работоспособности кода при любых невалидных воздействиях извне и немедленно возвращать свои выходы в номинальные диапазоны по прекращению невалидных воздействий? я не пишу на low level, мне это зачем, будет надо разберусь, Добавлено Цитата Qraizer @ Учитывал ли реакцию твоего кода на INF и NaN? И вообще, приходилось ли обеспечивать сохранение работоспособности кода при любых невалидных воздействиях извне и немедленно возвращать свои выходы в номинальные диапазоны по прекращению невалидных воздействий? Я с железом не пишу, в ранках своих задач да приходилось, Что ты хочешь сказать? Качественный код можно не писать? Можно так более менее или хуже? Я уже рассказвывл историю с операцией сыну, как бы ты среагировал в такой систуации? Будешь думать про волопровод 49,5$ ? Ты ответь, без бабы мансов потом про дрозда, продолжим |
Сообщ.
#27
,
|
|
|
Цитата applegame @ Ну, я бы не сказал, что двусвязные списки это "another matter entirely" Ну я бы не сказал, что фразу "But LinkedList is another matter entirely" стоит продолжать пытаться читать как-то по-другому, чем "But LinkedList is another matter entirely". "You're probably better off with ArrayDeque. Measure and find out " https://twitter.com/joshbloch/status/756538672724533248?s=20 "Resizable-array implementation of the Deque interface. Array deques have no capacity restrictions; they grow as necessary to support usage. They are not thread-safe; in the absence of external synchronization, they do not support concurrent access by multiple threads. Null elements are prohibited. This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue." doc Насчёт двусвязных списков не скажу, но как минимум их, например, нельзя просто сделать иммутабельными и/или ленивыми, в отличие от односвязных. |
Сообщ.
#28
,
|
|
|
Цитата korvin @ Там фраза чуть длиннее:Ну я бы не сказал, что фразу "But LinkedList is another matter entirely" стоит продолжать пытаться читать как-то по-другому, чем "But LinkedList is another matter entirely". Цитата Лично я полагаю, что "LinkedList" отличается от "linked list", которые "I love", только тем, что первые двусвязные, а вторые односвязные. Тут и не пахнет "another matter entirely", так как эти списки весьма похожи.Don't get me wrong; I love linked lists. They're as useful in C as they are in Scheme. But LinkedList is another matter entirely. Цитата Наверняка. Но есть серьезное подозрение, что внутри этого ArrayDeque используется, сюрприз-сюрприз, двусвязный список массивов Может даже тот самый LinkedList. Если же там просто массив, то при большом количестве элементов ArrayDeque будет медленнее LinkedList.This class is likely to be faster than Stack when used as a stack, and faster than LinkedList when used as a queue. Цитата korvin @ Можно и то и другое. Двусвязные списки нельзя сделать эффективно персистентными (Persistent data structure), как, собственно, и обычные масивы. Только CoW. Поэтому они бесполезны в ФП. Насчёт двусвязных списков не скажу, но как минимум их, например, нельзя просто сделать иммутабельными и/или ленивыми, в отличие от односвязных. Добавлено Почитал про ArrayList и ArrayDeque, внутри обычные массивы. А значит существуют случаи, когда LinkedList будет быстрее. Например если у нас миллион элементов в списке/очереди. |
Сообщ.
#29
,
|
|
|
Цитата sergioK @ Первая стадия пошла. А если серьёзно, кто тебя будет спрашивать-то? Или ты считаешь, что с датчиков приходят классы с инвариантами?я не пишу на low level, мне это зачем, будет надо разберусь, Цитата sergioK @ Что корректность твоего кода не должна зависеть от корректности окружения, с которым он взаимодействует. Пришла тебе от термодатчика температура пациента 1180,8° (нарушение единичного события) или там пульс INT_MIN (по IEEE это вполне себе целочисленная неопределённость). Причина – плохой контакт на разъёме. Ну как, вторая стадия уже на подходе?Что ты хочешь сказать? Качественный код можно не писать? Можно так более менее или хуже? Цитата sergioK @ Поинтересовался, правда ли, что этот софт не относится к высококритичному и при утвердительном ответе попросил бы сертификат. В любом случае уже б в уме сочинял заявление. А что? Я уже рассказвывл историю с операцией сыну, как бы ты среагировал в такой систуации? Добавлено Если ты к тому, что а вдруг тебе бы пришлось этот софт писать, беги от подобных заказов. Стадии ещё не кончились, впереди ещё три. И сесть может быть и не сядешь, но как себя поведут твои начальники и заказчики, предсказывать не берусь. Добавлено Цитата sergioK @ Стоимость цикла разработки от ТЗ до выдачи в эксплуатацию высококритичного ПО оценивается в полтора миллиона человеко-часов на мегабайт сырцов. Помножишь на свою зарплату сам. Будешь думать про волопровод 49,5$? |
Сообщ.
#30
,
|
|
|
Цитата Qraizer @ Или ты считаешь, что с датчиков приходят классы с инвариантами? Да понятия не имеею как они приходят, наверно есть способы как с этим работать Я с вебом работаю у меня все приходит как надо, Добавлено Цитата Qraizer @ Поинтересовался, правда ли, что этот софт не относится к высококритичному и при утвердительном ответе попросил бы сертификат. В любом случае уже б в уме сочинял заявление. А что? Я про наличие сертификата у софту слышу впервые в жизни, ISO никаких гарантий на надежность не требует, ну даже если он есть у них, крупная больница все таки, то что ? Куда бы ты писал и что ? А кто вообще решает критичный ли софт, если кого то убили то да, а если поцарапали то нет ? ISO гарантий не требует, |