2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5
 
 Re: Научный код
Сообщение11.01.2022, 17:55 


08/01/22

41
Pphantom в сообщении #1545879 писал(а):
)
Но ладно, давайте вернемся к нашим баранам. Итак, у нас есть свободное бесплатное ПО, ссылки на которое бывают в научных публикациях. Почему из этого следует, что оно написано "неизвестно кем" и ему при этом "слепо доверяют"? Кем и как оно должно быть написано, чтобы эти недостатки у него пропали?

Если ПО с открытым кодом будет написано научным институтом и код будет заверен цифровой подписью директора института, причём ЦП получена в государственном центре сертификации, то оно будет вызывать какое-то доверие.

 Профиль  
                  
 
 Re: Научный код
Сообщение11.01.2022, 17:58 
Заслуженный участник
Аватара пользователя


11/12/05
9957
Programer в сообщении #1545884 писал(а):
Если ПО с открытым кодом будет написано научным институтом и код будет заверен цифровой подписью директора института, причём ЦП получена в государственном центре сертификации, то оно будет вызывать какое-то доверие.

https://youtu.be/aARqAfpKNjc

 Профиль  
                  
 
 Re: Научный код
Сообщение11.01.2022, 18:02 


27/08/14
206
worm2 в сообщении #1545880 писал(а):
Я не могу понять одну вещь касательно JS-опенсорса. Зачем вообще ССЫЛАТЬСЯ на чужой репозиторий, непонятно кем разработанный, и который непонятно в какой (т.е. в любой) момент может непонятно кто сломать??? Какая такая религия запрещает просто СКОПИРОВАТЬ код себе?
Есть проблема с зависимостями - один пакет может зависеть от нескольких других. Соответственно придётся скопировать к себе и их. В JS при импорте одного пакета спокойно может подтянуться десятки зависимостей. И потом в ручную это всё обновлять просто замучаешься. Естественно такая ситуация многих не устраивает и с этим пытаются как-то бороться.

 Профиль  
                  
 
 Re: Научный код
Сообщение11.01.2022, 18:05 
Заслуженный участник


09/05/12
25179
Programer в сообщении #1545884 писал(а):
Если ПО с открытым кодом будет написано научным институтом и код будет заверен цифровой подписью директора института, причём ЦП получена в государственном центре сертификации, то оно будет вызывать какое-то доверие.
Мда... ясно. Как говорил один персонаж, "больше вопросов не имею".

 Профиль  
                  
 
 Re: Научный код
Сообщение11.01.2022, 18:08 


27/08/14
206
Programer в сообщении #1545872 писал(а):
Если в коммерческом ПО после обновления вылез баг, то по письму от законного пользователя его оперативно исправляют.
Оперативно
Цитата:
В техподдержке Acura рассказали, что проблема затронула много машин с 2008 по 2013 годы выпуска. Производитель в курсе инцидента, но выпустит обновление для устранения бага в лучшем случае лишь в августе.

 Профиль  
                  
 
 Re: Научный код
Сообщение12.01.2022, 10:41 


10/04/12
704
Programer в сообщении #1545572 писал(а):
Тоже около 15 лет в IT-индустрии. И скажу, что таких ошибок как в двух приведённых примерах в коммерческом коде опытным разработчикам не прощают.


У меня 25+ дет в IT-индустрии, и мой опыт говорит о том, что любой программист может совершить любую глупую ошибку. Хотя бы потому, что код не пишется линейно и сразу. Допустим была старая версия функции. Потом пришла идея что-то улучшить, добавить новые возможности, для чего надо сделать, скажем пять изменений. А программист внёс четыре, а пятое забыл. И да, может выглядеть очень глупо, то даже пройти какие-то тесты :) И это не говоря о том, что во многих местах (&= вместо tt]&&=[/tt]) это может быть банальной опечаткой. Не да, такие уж языки C/C++, что случайное удаление/замена/вставка одного символа может привести к неверной программе без каких-либо предупреждений. Уже в Pascal/Ada этого добиться сложнее, но это немного другой разговор. И это всё выглядит как скрытая реклама какого-то статистического чекера, ибо на другом форуме он же использовался для того, чтобы ругать OpenSource с аналогичными аргументами: люди ошибаются. Да, ошибаются.

-- 12.01.2022, 09:56 --

Programer в сообщении #1545629 писал(а):
Хороший код определить сложнее. Есть книга «Совершенный код». То что соответствует всем требованиям из неё можно считать хорошим кодом.


Ну.... Я рассматриваю эту книгу больше как рекомендации одного человека с экспертизой в достаточно узкой области (заимоствованное из Симулы ООП с небольшими методами, для решения бизнес задач), где-то выражающей личные вкусы автора. В каком-нить embedded на Си многие рекомендации будут выглядеть откровенно говоря вредными. Или для алгоритмических расчётов. Например, не использовать сокращения в мире, где как-то точно назвать сущность может быть весьма проблематичным. Нет, я видел, конечно, небольшие рассказы я именах методов (более 50-ти символов) в коммерческом, кстати, коде, но не считаю это хорошей практикой. Ну а так я даже встречал развитие этой идеи и даже требование переписать все учебники по математики и по физике с внятными именами идентификаторов :)

-- 12.01.2022, 10:06 --

ozheredov в сообщении #1545677 писал(а):
Хороший код - это такой код, при прочтении которого в общем и среднем некая референсная группа "нормальных программиздов" сможет наиболее быстро ответить на три вопроса:


Интересно, как набирать референсную группу? Если мне показать какой-нить код из мира Java с равиоли из классов, я буду ругать его на чём свет стоит, и взяд ли смогу ответить на большую часть вопросов за вменяеое время. Зато если мне дать код какого-нить модуля ядра Linux, где будут методы 500+ строчек, я в нём буду ориентироваться намного лучше и комфортнее. С другой стороны, для какого-нить разработчика .NET ситуация может быть ровно наоборот. Само определение «нормальности» оно субъективно, и часто это «я и все кто разделяет мою точку зрения, нормальны» :)

-- 12.01.2022, 10:20 --

worm2 в сообщении #1545880 писал(а):
Я не могу понять одну вещь касательно JS-опенсорса. Зачем вообще ССЫЛАТЬСЯ на чужой репозиторий, непонятно кем разработанный, и который непонятно в какой (т.е. в любой) момент может непонятно кто сломать??? Какая такая религия запрещает просто СКОПИРОВАТЬ код себе? (при необходимости — периодически копировать изменения из апстрима, разумеется, если они успешно пройдут тестирование).


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

 Профиль  
                  
 
 Re: Научный код
Сообщение12.01.2022, 16:43 
Экс-модератор
Аватара пользователя


23/12/05
12047
Не в тему сравнения научный vs коммерческий, поднятую ТС, но по заголовку темы "Научный код" у меня возник такой вопрос.

В научных статьях, посвященных тем или иным алгоритмам, часто проводят сравнение с другими алгоритмами, известными до этого. Сравнивают по разным метрикам, в том числе по времени вычислений. Мне дважды доводилось оптимизировать код, выложенный в открытом доступе, реализующий алгоритмы из определенных статей. Результат был подходящим, а время работы - нет. В обоих случаях выложенный код в ходе оптимизации переписался чуть более, чем почти полностью, на что было потрачено по 1-2 месяца работы. Не акцентируя внимание на стиль, на присутствовавшие ошибки, которые могли приводить к утечкам памяти и т.п., скажу только о времени.

Для первого алгоритма не могу сравнить "было" и "стало" на одинаковых данных, но, что помню: в исходном варианте на моем PC для картинки 5Mpx (количество операций этого алгоритма пропорционально размеру изображения) было более 20с, после оптимизации на моем телефоне (тогда он был примерно в полтора раза медленнее PC) картинка 16Mpx обрабатывалась порядка 200мс.

Для второго алгоритма на одном и том же устройстве и на одних и тех же входных данных время вычисления уменьшено с 20+мин до ~3с.

В обоих случаях все вычисления оставались на CPU (правда, для первой задачи часть вычислений распараллелилась между ядрами).

То есть в обоих случаях при одном и том же алгоритме, но реализованном разными людьми, перед которыми стояли разные цели, разница во времени обработки в сотни раз. При этом я не могу сказать, что исходных код был совсем ужасен, - доводилось видеть и похуже. После этого, что я могу думать о табличках, как например Table 5 тут: https://web.cse.ohio-state.edu/~wenger.4/publications/isomesh.pdf?

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

 Профиль  
                  
 
 Re: Научный код
Сообщение12.01.2022, 18:11 


10/03/16
3995
Aeroport
Mental в сообщении #1545588 писал(а):
В коммерческих компаниях качественным кодом, считается код который Team lead смержит в master :-)

+++++

 Профиль  
                  
 
 Re: Научный код
Сообщение18.01.2022, 20:21 


08/01/22

41
ozheredov
Team lead далеко не самостоятельное лицо. Коммерческий код проходит автоматическое и ручное тестирование, код-ревью, только потом тимлид его просматривает и фиксирует в СКВ. Подавляющее число коммерческих компаний работают по методологии SCRUM спринтами по 2 недели. Это позволяет в кратчайшие сроки выявить любой баг и ликвидировать его без существенной переделки коммерческого кода.

 Профиль  
                  
 
 Re: Научный код
Сообщение18.01.2022, 20:29 
Аватара пользователя


11/12/16
13298
уездный город Н
Programer в сообщении #1546422 писал(а):
Подавляющее число коммерческих компаний работают по методологии SCRUM спринтами по 2 недели. Это позволяет в кратчайшие сроки выявить любой баг и ликвидировать его без существенной переделки коммерческого кода

:facepalm: :facepalm: :mrgreen: :mrgreen:
SCRUM "позволяет" много чего, но только не то, что написано выше.

 Профиль  
                  
 
 Re: Научный код
Сообщение18.01.2022, 20:45 


01/03/13
2510
Programer в сообщении #1546422 писал(а):
Подавляющее число коммерческих компаний работают по методологии SCRUM спринтами по 2 недели.

Точно троль с Исходников. Выгнали, что ли, оттуда?

 Профиль  
                  
 
 Re: Научный код
Сообщение18.01.2022, 21:56 
Заслуженный участник


09/05/12
25179
 !  Да, кажется, пора закругляться. Programer - бан за систематический бред в различных темах.

 Профиль  
                  
 
 Re: Научный код
Сообщение19.01.2022, 00:10 
Заслуженный участник


06/07/11
5627
кран.набрать.грамота
wrest в сообщении #1545868 писал(а):
Но тем не менее - так тоже может быть.
Это еще ерунда. Я далек от фронт-энд разработки, но знающие люди говорят, что вот так - тоже может быть. А это уже немного другой уровень.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 73 ]  На страницу Пред.  1, 2, 3, 4, 5

Модератор: Модераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group