
Aldar
27.05.2016
23:16:47
ну и как вы обходитесь без shared_ptr?

Andrei
27.05.2016
23:17:09
Приведи пример, когда он нужен.
Я знаю дай Бог один, в котором нам пришлось сделать исключение.

Aldar
27.05.2016
23:18:16
Если знать кто владелец, и время жизни объектов, то можно обойтись unique_ptr и простыми указателями

Google

Andrei
27.05.2016
23:19:04
Можно
И я призываю писать код, посмотрев на который ты можешь сказать кто владеет объектом.

Aldar
27.05.2016
23:21:08
У С++ большое преимущество перед растом - куча библиотек, надёжных инструментов и прочие плюшки устроявшегося языка
можно сесть и писать реальный софт

Andrei
27.05.2016
23:32:22
плюсы можно было бы сделать идентичными расту
если запретить использовать объект после move
и запретить делать копии некостнатных референсов и поинтеров
получится в точности раст
Но ты и так, если хочешь, можешь писать код без этого!

Alex Фэils?︙
27.05.2016
23:34:38

Aldar
27.05.2016
23:35:10
https://www.youtube.com/watch?v=hEx5DNLWGgA
тут чувак показывает софт для статического анализа кода

Alex Фэils?︙
27.05.2016
23:35:26
так... я ща инглишский не поймц

Google

Aldar
27.05.2016
23:35:55
как раз для того чтобы следить за такого рода штуками

Andrei
27.05.2016
23:36:27
Да, вот.
Всё правильно.
Для «недисциплинированных» програсммистов есть статические анализаторы кода.

Alex Фэils?︙
27.05.2016
23:37:28
Cppcheck у меня в старом проекте том ничего не нашел

Andrei
27.05.2016
23:37:28
А еще там где я работал у нас их заменяло обязательно peer-rewiev кода всей командой.

Aldar
27.05.2016
23:37:39
начиная с 43 минуты
правда это майкрософтовская хрень

Alex Фэils?︙
27.05.2016
23:38:11
хотел одному чуваку показать

Aldar
27.05.2016
23:42:56
у меня идея возникла
писать небольшие проги на современном С++14 и на haskell
и сравнивать
тем самым можно продвинуть и С++, и хаскель

Alex Фэils?︙
27.05.2016
23:44:44
Хорошая идея

Aldar
27.05.2016
23:44:53
и много чему научиться
И потом писать разборы реализаций

Alex Фэils?︙
27.05.2016
23:46:23
вообще да

Aldar
27.05.2016
23:46:25
в блоге
на английском

Google

Alex Фэils?︙
27.05.2016
23:46:33
Ммм... блог...

Aldar
27.05.2016
23:46:45
со ссылками на код
Так удобнее для тех кто хочет следить за новыми постами

Andrei
27.05.2016
23:50:45
Бартош покусал?
:D
Он ведь уже это делает.

Aldar
27.05.2016
23:51:51
где?

Andrei
27.05.2016
23:52:36
ну он фактически пишет в своём блоге о функциональных парадигмах в с++
или ты хочешь произвольные задачи решать?

Aldar
27.05.2016
23:53:45
я про небольшие задачки, и лучшие решения на С++ и хаскель
в идиоматичном стиле для обоих языков
то есть не надо пытаться писать на С++ в функциональном стиле

Aldar
27.05.2016
23:54:25
а на хаскелле в императивном

Andrei
27.05.2016
23:54:35
Ну эээ

Ned Ogl
27.05.2016
23:54:49
невероятно, но факт, простая программа на Ди содержащая строки
void main(){} весит...
внимание....
полагаю, там весь glibc слинкован статически

Andrei
27.05.2016
23:55:26
Скажем на хаскелле функцию которая вычисляет какое-нибудь там число фиббоначи, за логарифм, оптимально было бы писать используя StateT
Так что без монадок не обойдешься.

Google

Andrei
27.05.2016
23:55:46
С состояниями.

Aldar
27.05.2016
23:55:50
ты посчитай сколько бинарник в go весит)

Ned Ogl
27.05.2016
23:56:18
и почему?

Aldar
27.05.2016
23:57:17
там тоже статическая линковка
всё пихается в один бинарник
разве монадические вычисления это императивщина?
они просто эмулируют императивщину
особенно в do нотации

Andrei
27.05.2016
23:58:52
Да.

Admin
ERROR: S client not available

Andrei
27.05.2016
23:59:07
Я про это и говорю.
Ты говоришь идеоматически.

Aldar
27.05.2016
23:59:36
я имею ввиду согласно лучшим практикам

Andrei
28.05.2016
00:00:10
Идеоматически вычисления в IO монаде(которая называется также монада строго последовательных вычислений) ничем с практической точки зрения не отличается от императивщины.
Хотя конечно правда в том, что всё что можно делать с монадами можно делать без них.

Aldar
28.05.2016
00:00:44
ну тогда просто сравним код
это же будет интересно

Andrei
28.05.2016
00:01:01
Просто мне кажется примеры бинарно разделятся на хаскеллевские и на с++-ные
Разве лишь за исключением простейших.

Google

Aldar
28.05.2016
00:01:39
блин, с другой стороны на rosettacode.org уже куча задач есть на любых языках

Andrei
28.05.2016
00:08:07
кошмар
там есть страшные решения
очень плохие

Square
28.05.2016
00:16:02
@AndreiC поделись своим гайдлайном? Если не секретный

Andrei
28.05.2016
00:16:38
Не уверен, что он у меня еще остался, может остался только codestyle :c

Square
28.05.2016
00:19:02
Я просто в толковых конторах не работал, и судить могу по тому что нарою в инете. Всегда хотелось посмотреть на то, как это делают топы
Всмысле на то, как они в команде трудятся

Andrei
28.05.2016
00:20:55
По ограничениям в коде было очень мало правил. Не использовать shared_ptr, по минимуму шаблонов, не использовать new\delete, там где надо не стесняться использовать move, избегать копирований, аккуратно работать c future\promise, кидать runtime_exception. И всё такое.
Потом мы писали уже целиком код на корутинах, на библиотеке которую я запилил для всего проекта
Там уже были корутиновые приколы.

Square
28.05.2016
00:21:42
У нас были крутые самоучки, но там старые делфисты и ушли давно. Вот мы теперь с напарником в плюсы переезжаем все

Andrei
28.05.2016
00:21:55
EventLock-и, RemoteContext-ы и прочее.

Square
28.05.2016
00:22:06
Ну и по дороге улучшайзинги пилим по мере сил
Собсно это И сгубила прошлой версии системы потому что часть года было написно на DELFI часть на плюсах часть ещё на чем-то были даже вызовы управляемого кода нв точкеНет
Сорри за грамматику и орфографию голосовой набор
Я кстати хочу разобраться как на модульности плагины в таких вещах типа как в матлаб симулин или иже сними для того чтобы может быть перенять опыт
Потому что у нас сейчас все на динамических библиотеках
В принципе неплохо, однако костыли местами подставлены.
Все в угоду скорости