
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.239.2.192] |
![]() |
|
Страницы: (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 используется, сюрприз-сюрприз, двусвязный список массивов 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 гарантий не требует, |