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

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

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. gubanoff 47 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 1853 23.01.19 15:39 Сейчас в теме
(1) так я, например, постоянно предлагаю Макконнелла читать всем и каждому. Моя статья тут совершенно о другом - о том, что нужно знать программисту, чтобы вообще иметь возможность писать программы. Ну и о том, что совершенного кода написано не так много, что лучше написать не такой совершенный, но работающий код, чем не написать никакого кода )))
mvxyz; Dem1urg; +2 Ответить
23. zqzq 16 25.01.19 09:24 Сейчас в теме
(2) Кстати, по поводу Совершенного кода, в оригинале название книги "Code Complete", совсем другой нюанс смысла.
34. kote 500 27.02.19 19:17 Сейчас в теме
(23) не-а, как раз перевод "совершенный" тут самое то - "совершенный" оно от "свершился -> завершился"..
Завершенный, законченный, самодостаточный - как раз это значение у "complete".. а просто перевод "завершенный" - лишен смысла, который в самой книге.
38. Crazy_Max 52 26.04.19 13:30 Сейчас в теме
(34)
не-а, как раз перевод "совершенный" тут самое то - "совершенный" оно от "свершился -> завершился"...

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

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


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

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

и

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

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

наверняка есть и получше варианты
Алексей_mir2mb; starik-2005; +2 Ответить
7. starik-2005 1853 23.01.19 16:41 Сейчас в теме
(5) как вариант! Полезно иногда понимать, что где-то ошибаешься.
8. pm74 123 23.01.19 16:46 Сейчас в теме
(7) может кто нибудь заморочится и напишет обработку на тему алгоритма Квайна-МакКлоски
9. starik-2005 1853 23.01.19 16:55 Сейчас в теме
(8) кстати, очень интересная тема. Постараюсь нарисовать ее в ближайшее время.
6. pm74 123 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 25 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 1853 24.01.19 14:37 Сейчас в теме
(11) всегда есть смысл предметно поговорить об этом. Но для этого нужно какой-то пример разобрать. У Вас есть пример?
12. logarifm 1041 24.01.19 12:44 Сейчас в теме
2. Любое высказывание или истинно, или ложно - третьего не дано.


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

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

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

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

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


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

Это не тот Фихтенгольц, который еще и по программированию учебники писал? Я, будучи школьником, изучал по нему Паскаль в 10-м классе, а в 11-й класс пошел в другую школу. Там препод посмотрел на книжку, по которой я учился, затем указал мне на лучший компьютер в классе и попросил, чтобы я не мешал ему на уроках.
А книжка, и в правду, давалась с кровью и седыми волосами. Только позже, когда мне попались в руки другие книги по программированию, я в сравнении осознал, насколько это было жестоко по отношению к моей невинной детской головушке...
25. rwn_driver 7 25.01.19 10:34 Сейчас в теме
Можно ещё почитать занимательную логику или Рэймонд М. Смаллиан "Как же называется эта книга?".
30. vasilev2015 1001 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 19 23.04.19 21:26 Сейчас в теме
(36) да, были люди в наше время... богатыри, не мы...
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Ижевск
зарплата от 70 000 руб. до 94 000 руб.
Полный день

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

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день