0. starik-2005 1955 23.01.19 20:45 Сейчас в теме

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое

Все современные технологии - это развитие и доведение до ума (или маразма) древних идей. За последнее время не придумали ничего нового - все, что мы видим, было придумано тысячи лет назад. Не является исключением и программирование, которое в сути своей является переводом с языка условностей технического задания или заявки пользователя в формализованный и абсолютно точный язык математической логики. А логику придумали (по крайней мере первыми опубликовались в ведущих научных журналах) еще древние греки.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. gubanoff 46 23.01.19 15:30 Сейчас в теме
(0) Всегда рекомендую читать классику - "Совершенный код" С. Макконнелл. Там написано все и подробно.

Не хочется обижать авторов статей, но они освещают только малый процент того, что есть в "совершенном коде".
JohnConnor; YPermitin; kraynev-navi; ilialin; ivanov660; PLAstic; klinval; zqzq; CSiER; lunjio; wowik; Vladimir Litvinenko; starik-2005; +13 Ответить
2. starik-2005 1955 23.01.19 15:39 Сейчас в теме
(1) так я, например, постоянно предлагаю Макконнелла читать всем и каждому. Моя статья тут совершенно о другом - о том, что нужно знать программисту, чтобы вообще иметь возможность писать программы. Ну и о том, что совершенного кода написано не так много, что лучше написать не такой совершенный, но работающий код, чем не написать никакого кода )))
mvxyz; Dem1urg; +2 Ответить
23. zqzq 16 25.01.19 09:24 Сейчас в теме
(2) Кстати, по поводу Совершенного кода, в оригинале название книги "Code Complete", совсем другой нюанс смысла.
34. kote 499 27.02.19 19:17 Сейчас в теме
(23) не-а, как раз перевод "совершенный" тут самое то - "совершенный" оно от "свершился -> завершился"..
Завершенный, законченный, самодостаточный - как раз это значение у "complete".. а просто перевод "завершенный" - лишен смысла, который в самой книге.
38. Crazy_Max 54 26.04.19 13:30 Сейчас в теме
(34)
не-а, как раз перевод "совершенный" тут самое то - "совершенный" оно от "свершился -> завершился"...

(34)
Тогда нужно акцентировать внимание на букве "Ё" в слове "совершённый". А вообще, я бы перевёл название во что-то вроде "Конечный код". В любом случае название "Совершенный код" несёт практически противоположный смысл, чем тот, который вкладывал Макконнелл.
40. starik-2005 1955 26.04.19 14:51 Сейчас в теме
(38)
я бы перевёл название во что-то вроде "Конечный код"
"Конченный код" ))) Типа писал его совсем конченный программер )))
41. Crazy_Max 54 26.04.19 19:41 Сейчас в теме
Ну уж кто чего видит...
3. pm74 132 23.01.19 16:10 Сейчас в теме

Отсюда прямо следует, что данное условие эквивалентно следующему:
(А ИЛИ Ц) И (А И Б ИЛИ Ц И Д)


ну неправильно же , исправьтесь

(А И Б) И (Ц И Д) ИЛИ НЕ Ц И (А И Б) ИЛИ НЕ А И (Ц И Д)

и

(А ИЛИ Ц) И (А И Б ИЛИ Ц И Д)

не эквивалентны
Алексей_mir2mb; +1 Ответить
4. starik-2005 1955 23.01.19 16:23 Сейчас в теме
(3) не эквивалентны в двух случаях из 16-ти. Может Вы предложите, как сократить это выражение?
Алексей_mir2mb; +1 Ответить
5. pm74 132 23.01.19 16:26 Сейчас в теме
(4) ну например
Ц И Д И (НЕ А ИЛИ Б) ИЛИ НЕ Ц И А И Б
или
(НЕ Ц ИЛИ Д) И (НЕ А ИЛИ Б) И (Ц И Д ИЛИ А И Б)

наверняка есть и получше варианты
Алексей_mir2mb; starik-2005; +2 Ответить
7. starik-2005 1955 23.01.19 16:41 Сейчас в теме
(5) как вариант! Полезно иногда понимать, что где-то ошибаешься.
8. pm74 132 23.01.19 16:46 Сейчас в теме
(7) может кто нибудь заморочится и напишет обработку на тему алгоритма Квайна-МакКлоски
9. starik-2005 1955 23.01.19 16:55 Сейчас в теме
(8) кстати, очень интересная тема. Постараюсь нарисовать ее в ближайшее время.
6. pm74 132 23.01.19 16:38 Сейчас в теме
Просто оставлю здесь
ВЫБРАТЬ
	ИСТИНА КАК БУЛЕВО
ПОМЕСТИТЬ ИСТИНАЛОЖЬ
ОБЪЕДИНИТЬ
ВЫБРАТЬ
	ЛОЖЬ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ИСТИНАЛОЖЬ.БУЛЕВО КАК А,
	ИСТИНАЛОЖЬ2.БУЛЕВО КАК Б,
	ИСТИНАЛОЖЬ3.БУЛЕВО КАК Ц,
	ИСТИНАЛОЖЬ4.БУЛЕВО КАК Д
ПОМЕСТИТЬ СОЧЕТАНИЯ
ИЗ
	ИСТИНАЛОЖЬ КАК ИСТИНАЛОЖЬ,
	ИСТИНАЛОЖЬ КАК ИСТИНАЛОЖЬ2,
	ИСТИНАЛОЖЬ КАК ИСТИНАЛОЖЬ3,
	ИСТИНАЛОЖЬ КАК ИСТИНАЛОЖЬ4
;

////////////////////////////////////////////////////////////­//////////////////// 
ВЫБРАТЬ
А,Б,Ц,Д,
((А И Б) И (Ц И Д)) ИЛИ  (( А = Ложь ) И (Ц И Д)) ИЛИ ((А И Б) И (Ц = Ложь)) КАК Шаблон,
(А И Б) И (Ц И Д) ИЛИ НЕ Ц И (А И Б) ИЛИ НЕ А И (Ц И Д) КАК Выражение1,
(А ИЛИ Ц) И (А И Б ИЛИ Ц И Д) КАК Выражение2,
Ц И Д  И (НЕ А ИЛИ Б) ИЛИ НЕ Ц И А И Б  КАК Выражение3
ПОМЕСТИТЬ ПРОВЕРКА
ИЗ
	СОЧЕТАНИЯ КАК С
	;
ВЫБРАТЬ
А,Б,Ц,Д, 
Шаблон = Выражение1 Проверка1,
Шаблон = Выражение2 Проверка2,
Шаблон = Выражение3 Проверка3
Из   ПРОВЕРКА КАК П

Показать
Алексей_mir2mb; singlych; fancy; unichkin; acanta; +5 Ответить
10. Painted 28 24.01.19 10:00 Сейчас в теме
2.4.1. Слона надо есть по кусочкам.
Если задача пугает громоздкостью и/или сложностью, разбейте ее на более простые подзадачи. И разбивайте до тех пор, пока они не станут простыми и легко реализуемыми.
IgorS; Yimaida; Yakud3a; alex-l19041; starik-2005; +5 Ответить
11. FreeFin 2 24.01.19 12:32 Сейчас в теме
Frustra fit per plura quod potest fieri per pauciora
Но почему почти никто не задумывается, что достаточное не всегда правильное? Привычка, так принято и иначе нельзя? Всего лишь вопрос, а почему нельзя? Потому что "Оккам так сказал"?
Алексей_mir2mb; +1 Ответить
14. ADirks 181 24.01.19 14:13 Сейчас в теме
(11) потому что правильное не всегда правильно
brr; Алексей_mir2mb; +2 Ответить
16. starik-2005 1955 24.01.19 14:37 Сейчас в теме
(11) всегда есть смысл предметно поговорить об этом. Но для этого нужно какой-то пример разобрать. У Вас есть пример?
12. logarifm 1047 24.01.19 12:44 Сейчас в теме
2. Любое высказывание или истинно, или ложно - третьего не дано.


В терминах 1С еще Или НЕОПРЕДЕЛЕНо :)
jif; Алексей_mir2mb; sm.artem; +3 Ответить
13. qwinter 603 24.01.19 13:57 Сейчас в теме
(12) Только в случае если оно существует)))
15. starik-2005 1955 24.01.19 14:36 Сейчас в теме
(12)
В терминах 1С еще Или НЕОПРЕДЕЛЕНо :)
Результат логической операции не может быть неопределен. Или может? )))
19. ADirks 181 24.01.19 17:33 Сейчас в теме
(15) В Булевой алгебре не может, т.к. эта алгебра определена на множестве {Истина, Ложь}
А в SQL может, т.к. там множество {Истина, Ложь, Null}
Алексей_mir2mb; +1 Ответить
17. Jokemas 133 24.01.19 15:01 Сейчас в теме
Хорошая статья. Порадовало упоминание создателя "Соло на клавиатуре" =)).
18. capitan 1269 24.01.19 15:19 Сейчас в теме
У некоторых программистов бывает еще так:
rpgshnik; Bajo; kote; TABEZI1234; EVKash; Алексей_mir2mb; Yakud3a; starik-2005; +8 Ответить
31. TABEZI1234 25.01.19 22:33 Сейчас в теме
20. morin 13 24.01.19 19:54 Сейчас в теме
Спасибо автору за статью.
Процентов 80 работы программиста - это не написание кода, а его чтение (изучение чужого кода, отладка, изучение документации). У программистов 1С эта доля может доходить до 98 процентов.
Может кто-нибудь поделится, как читать код (опыт, методики, инструменты)?
Но, думаю, это тема для отдельной статьи.
ilialin; acanta; starik-2005; Алексей Воробьев; Алексей_mir2mb; +5 Ответить
26. starik-2005 1955 25.01.19 10:40 Сейчас в теме
(20)
Но, думаю, это тема для ...
Кстати, хорошая идея. Попробую изложить свое видение данной проблемы в эти выходные.
kote; json; +2 Ответить
27. genayo 25.01.19 10:53 Сейчас в теме
(26) Обязательно пишите, вроде неплохо получается :)
21. Артано 662 25.01.19 04:14 Сейчас в теме
Спасибо за внесенную лепту. А также, за своеобразный пинок меня, чтобы я продолжил публикации ))
22. 1c-intelligence 8523 25.01.19 07:23 Сейчас в теме
24. awk 692 25.01.19 10:02 Сейчас в теме
Про логику порадовало

С. Н. Виноградов, А. Ф. Кузьмин
Логика
УЧЕБНИК ДЛЯ СРЕДНЕЙ ШКОЛЫ СССР
*** 1954 ***

https://sheba.spb.ru/shkola/logika-vinograd1954.htm

очень рекомендую....

Я правда читал для вузов, вышеприведенный попроще...
starik-2005; +1 Ответить
28. Painted 28 25.01.19 16:03 Сейчас в теме
(24)
УЧЕБНИК ДЛЯ СРЕДНЕЙ ШКОЛЫ СССР
*** 1954 ***
Сорри, немного оффтопа. О вечном.
Недавно с удивлением узнал, что мой ребенок учит дифференциалы по Фихтенгольцу. По которому в свое время учился я и, секундочку, моя мама. ))
29. awk 692 25.01.19 17:24 Сейчас в теме
(28)
Фихтенгольцу


Тут оказалось, что учебники 40-50 гораздо более понятны и адекватнее современных. Энтузиасты взялись за переиздание. Кто использует говорят эффект потрясающий, школьники которые считались в школе безнадежно тупыми - выбиваются в уверенные хорошисты (но это по слухам - не проверял сам).
39. Crazy_Max 54 26.04.19 13:47 Сейчас в теме
(28)
дифференциалы по Фихтенгольцу

Это не тот Фихтенгольц, который еще и по программированию учебники писал? Я, будучи школьником, изучал по нему Паскаль в 10-м классе, а в 11-й класс пошел в другую школу. Там препод посмотрел на книжку, по которой я учился, затем указал мне на лучший компьютер в классе и попросил, чтобы я не мешал ему на уроках.
А книжка, и в правду, давалась с кровью и седыми волосами. Только позже, когда мне попались в руки другие книги по программированию, я в сравнении осознал, насколько это было жестоко по отношению к моей невинной детской головушке...
25. rwn_driver 8 25.01.19 10:34 Сейчас в теме
Можно ещё почитать занимательную логику или Рэймонд М. Смаллиан "Как же называется эта книга?".
30. vasilev2015 1410 25.01.19 21:45 Сейчас в теме
Хочу поблагодарить Сергея за поддержку статьи про логику и математику
32. TABEZI1234 25.01.19 22:33 Сейчас в теме
не понял, это сарказм был в статье?
33. TABEZI1234 25.01.19 22:34 Сейчас в теме
Процентов 80 работы программиста - это не написание кода, а его чтение (изучение чужого кода, отладка, изучение документации). У программистов 1С эта доля может доходить до 98 процентов.
Может кто-нибудь поделится, как читать код (опыт, методики, инструменты)?
Но, думаю, это тема для отдельной статьи. ---Согласен
Crazy_Max; kote; +2 Ответить
35. 3vs 23.04.19 11:18 Сейчас в теме
"2. Любое высказывание или истинно, или ложно - третьего не дано."
А как же Троичная логика?
ru.wikipedia.org/wiki/Троичная_логика

Перечень значений нечёткой трёхзначной логики с двумя чёткими и с одним нечётким значением помимо «истинно» и «ложно» включает также третье значение, которое нечётко и трактуется как «не определено» или «неизвестно», или, в простонародье, х.з.

Примерами значений нечёткой трёхзначной логики с одним чётким и с двумя нечёткими значениями являются: («меньше», «равно», «больше»), («уклон влево», «прямо», «уклон вправо») и другие.

Примерами значений нечёткой трёхзначной логики с тремя нечёткими значениями, к которым сводится очень большое количество практических народнохозяйственных задач, являются: («меньше», «равно, в допустимых пределах», «больше»), («уклон влево», «прямо, в допустимых пределах», «уклон вправо»), («холодно», «прохладно», «жарко») и другие.
37. Perfolenta 168 23.04.19 21:26 Сейчас в теме
(36) да, были люди в наше время... богатыри, не мы...
42. Rustig 1191 07.08.19 10:40 Сейчас в теме
пусть идет учиться не на очередной сертификат, а на курс логики.

для улучшения собственных навыков программирования идеально подходит парное программирование с более опытным наставником

понравилась мысль про "глаза боятся - руки делают". спасибо!
43. starik-2005 1955 07.08.19 22:26 Сейчас в теме
(42) этим мыслям тысячи лет)))
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Руководитель проектов 1С
Санкт-Петербург
Полный день

Программист 1C
Москва
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день