GithubHelp home page GithubHelp logo

H2H . концепт

Не нужно кодировать язык. Компилятор /интерпретатор всё сделает сам. В чем смысл кода. Почему нельзя сказать "Компьютер, посчитай мне интеграл и приделай смешную рожицу моему соседу". В 2022м можно.

самодокументируемый код - говно нонсенс. оксюморон. Документацие есть код. опиши фукцию. какую информацию и в каком виде она принимает. Что делает, и в каком виде возвращает результат. И уже потом пиши реализацию. И если в будущем ты или кто-то ещё меняет реализацию так что она становится отличной от написанного, то логично что нужно подправить документацию, либо оставаться её рамках.

А вся история с "самодокументацией" и "никто не поддерживает комментарии" это лажа. Я написал вы разбирайтесь. Если нет времени, желания и ресурсов документировать код, то это одноразовый код. Быстрее написаить новый, чем повтороно проделывать всю работу по декомпозицц попутно разбирая костыли.

эта документация станет тесткейсом и исновой автоматизации

информация - физическое состояние предметов

Абстракция

Абстракция - это такое абстрактное понятие...

Чтобы не ходить вокруг да около. Абстракция - это замена большого количества понятий мыслей и принципов одним словом. "А давайте договоримся что..." и дальше что нам нужно "упаковать" в одно ёмкое выражение.
Вот лежат палки. || Их не одна. Их несколько. Давайте договоримся что их: "три". Ладно добавим ещё одну, не будем рушить и без того хрупкую систему ценностей.
Вот они лежат на земле случайно разбросанные ветром.

__ / \

Мы не говорим дай мне палку и палку и палку. Мы говорим дай мне три палки. А потом мы говорим "принеси хворост". на самом деле у нас уже две абстракции. Пойди вон туда, собери, вернись обратно и сложи много палок не очень крупных и сухих, предназначенных для сжигания в костре. То есть весь наш язык - это набор абстракций.

Сказка ложь, да в ней намек.
И мы такие. А давайте вот столько чего-нибудь будет называться "три". И тут соплеменники скажут тебе:
-- Бобо, не плоди сущности сверх необходимого, жуй мамонта и размножайся.
-- Ха! Но что если я скажу вам на следующей охоте, что там нас ждет ТРИ мамонта.
-- Тогда мы скажем что это глупо. Потому что три мамонта пропадут быстрее чем ты сможешь их съесть.
-- А если скажу что вон там лежат три яблока!
-- Это слишком мало, чтобы отрываться от мамонта.
-- Ладно. Тогда я скажу, что там "Х" вот столько литров меда. -- Ты забегаешь вперед, до изобретения этой жидкостной системы мер ещё несколько тысячелений. И что это за крест?
-- Это "десять". -- Мы даже не разобрались зачем нам "три", а ты уже предлагаешь "десять". Остановись!
-- К нам приближаются три чужака!
-- Где!? Кто?! Дубины к бою, построение возле пещеры! -- Да нет, я для примера придумал. Кто же к нам пойдет если нас десять.
-- Бобо, ты испытываешь мой нерв! Ладно. Всем успокоиться, есть мамонта и размножаться. Так, подожди. А десять это, вообще, сколько? Если они не напали, значит явно больше чем три.
-- Десять это три по три и ещё один.
-- Попахивает интегралами... Ладно. Но письменность под это будешь придумывать сам.

Как появились первые алгоритмы

И всё же к палкам. Если вы покажете своей собаке или кошке, или хомячку, три палки или четыре. Это не вызовет никаких срабатываний в мозгу. Животным не нужна система в которой они сравнивают количество. Им достаточно концепта "там настолько много еды/добычи, что я готова туда бежать". Или оттуда. Животным одиночкам вообще не нужна "палата мер и весов". Стайным достаточно какого-то упрощенного инструмента, когда "нас достаточно много", "нам безопасно", "нам хватает здесь еды". А вот приматы, и следом за ними человек, пошли дальше.

Тут придется сделать отступление, чтобы . Почему так случилось.

У человека самый долгий период взросления. И это наша рекурсивная функция. Рекурсия - это когда непонятно что произошло первым, курица или яйцо. Чем больше у тебя нейронных связей, тем больше у тебя возможностей, готовых реакций, паттернов поведения и прочего. Вообще проблема-преимущество в том, что ты можешь жрать всё, но тебе нужно помнить что жрать можно, а что нет. Как я уже говорил выше информация - всего лижь физическая пара "ключ-замок" вот эта молекула соединяется только с этой и только тогда запускается реакция "свой чужой". или "съедобно несъедобно" или "верю-неверю".
дольше их нужно формировать. и если животным, условно достаточно понимать "это трава" или "это мясо" то человекам приходится учить и мясо и траву. Но это не главное. Из-за нашей абсолютной беззащитности, и неприспособленности, нам приходится пользоваться инструментами. Нам нужно помогать друг другу. С одной стороны это дало нам абсолютно "имбалансное" преимущество перед животными растениями грибами и вирусами. С другой сделало нас зависимыми от передачи информации друг другу.
И вот тут на сцену вышли алгоритмы. Я строю дом не потому что я так захотел. А потому что зимой я должен быть в тепле. Не будет тепла, я умру. Либо не смогу передать свои гены дальше. Что по сути равноценно, но это немного другая область науки. Очень грубо, не отвлекаясь на нюансы и оговорки мы напрямую зависим от возможности планировать будущее. ПРЕДпринимать действия. Решать проблемы до их появления.
По сути в этом и есть смысл программирования.

Вообще зачем нужны абстракции? Для передачи информации. Быстрой передачи информации. Вы же не говорите: "длинная самоходная повозка на дизельной тяге в которую помещается много людей". Вы говорите: "автобус".

Есть, права одно условие. На обоих концах этой связи должны быть все части этого конструктора. Почему взросление человека занимает так много времени? Мы должны передать огромное количество информации. Не просто её объявить. А сделать так чтобы физически в мозгу живые клетки выстроились определенным образом.

Абстракции в программировании

В какой-то момент абстрактного слова "абстракция" перестало хватать, и люди придумали абстрактный слой абстракции. Или иногда говорят "уровень абстракции".
Подразумевается, что мы уже знаем математику и что такое программирование. Понимаем смысл функции. И, хотя бы, подозреваем о существовании классов.
Так вот. Когда нам нужно объединить несколько абстракций в одну новую абстракцию, это и зовется "слоем абстракции". Самым очевидным примером, пожалуй, будет сложение чисел и умножение. Когда у нас есть много одинаковых сложений, мы можем заменить их умножением. А умножение - возведением в степень. Но самый очевидный путь не всегда самый правильный.
Сложение, вычитание, умножение и даже возведение в степень - это действия над числами. И все они объединяются абстракцией "математика". И хотя нет никаких законов о том как лучше выдумывать несуществующие понятия о несуществующих понятиях, лучше руководствоваться следующими принципами.

  • лучшее - враг хорошего
  • не плоди сущностей сверх необходимого

Слишком мелкое деление захламляет пространство. Слишком крупное - делает использование громоздким и неудобным. Разложите всё по коробкам, коробки по контейнерам, а контейнеры развезите на разные склады. И если чайник и ручка от него находятся в разных местах, возможно стоит пересмотреть концепт проектирования.

Информация

Вопреки нашей любви к сложным абстракциям - это лишь состояние каких-то физических объектов. Какие-то палки где-то в природе лежат определенным образом |V, и вдруг мы говорим "четыре" или |7 "семнадцать".
Можно ли объяснить ети концепции тушканчику или гусенице, которая по этим палкам ползет? Нет, потому что информации не существует. Существует физический объект. Много объектов. И некоторые имеют такую форму, которая создает уникальное взаимодействие. Как две молекулы. Как ключ и замок. Если выступы на ключе совпадут с прорезями в замке, ключ повернется. Но мы же не говорим, что ключ обладает информацией. Хотя так оно и есть))
Резюме. Если я вас запутал, значит всё правильно. Смысл в том, чтобы не привязываться к абстракциям. Абстракции служат нам, а не мы им. Мы привыкли говорить "передача информации", "я получила информацию" и тому подобное. Просто где-то глубоко надо помнить, что это всего лишь изменения состояния каких-то физических объектов. Перекладывание камушков с места на место. Или перекатывание песчинок прибоем.

Что, впрочем, оставляет простор для размышлений на тему, а зачем такие сложности для неодушевленных молекул. Или же, чтобы не переходить в анимализм, каково условие при котором система начинает самоусложняться.

Концепт кода порожден системой технических ограничений. Если всё что вы можете передать - это наличие или отсутствие сигнала, вам приходится договариваться о том, какое

Зачем что как какую задачу мы решаем. Что именно мы делаем, действительно ли это проблема и решаем лм мы её в полной мере.

если wld J => 10050z тлщ > 100 држк.охл

хороший инженер если плохой инженер когда исключения как следующий уровень программирования большай часть программирования -поиск исключениея

почему транзисторы

Потому что перед ними были лампы. Лампы это наследие эры экспериментов. Человек же не может сесть такой: "Изобрету ка я новую технологию. Телепортацию". И вот сидят пять чувачков за столами, что-то пишут, прогрессбар заполняется и, херак, вы на другой планете.

Кстати, кто-то думал? что будет если телепортироваться на другую планету? для простоты возьмем
Землю и Марс. Для начала вам нужно решить проблему замещения атмосферы в точке прибытия. 
Иначе у вас получится вакуумная бомба. Либо ядерная. Это мы ещё пренебрегаем
 разницей в плотности и тд. А что дальше?
А дальше Марс движется со скорость. 24 километра в секунду. А земля - 30 км В СЕКУНДУ, Карл.
С разными векторами...
Ах да. Скорость взрыва тротилла всего 7км/с. 

Что нам понадобится. На нужны шарманка, перфокарты Булева алгебра, Клод Шаннон и нацистская машина шифрования Энигма.

Но сначала нам нужна информация. Все это время мы же будем говорить про информационные, мать их, технологии. С технологиями непонятно, хоть с информацией разберемся. Информация это такое абстрактное понятие... А в пайтоне - всё объекты.
Если обе этих фразы ничего тебе не объясняют, попробуй прочитать их медленно. Как будто ставя точку. После. Каждого. Слова. Давай вместе. Абстрактное - пайтон. Понятие - объекты. Если на мгновение в твоем мозгу забрезжило понимание, то моё издевательство удалось на славу. Ничего, ровным счетом, эти слова не дадут тебе если, в мозгу нет сложившихся в нужном порядке нейронов. Если ты не знаешь китайский, то иероглиф тебе ничего не скажет. Потому что нет в мозгу кусочков из которых состоит иеро-глиф. Хоп, и мозг разделил одно понятие, на два из которых что такое "иеро"? Нам важно понять, что информация в конечном итоге - физическое состояние предмета с каким-то узким способом применения. То есть информация нужна нам вот где-то именно здесь. Именно, для наполнения кувшина водой. https://youtu.be/i9TdoO2OVaA?t=294 Но лучше взять вариант попрогрессивней и повысокотехнологичней. Шарманка. https://youtu.be/hW0T6qdI2qE?t=25 Позвольте представить первый восемнадцатиядерный асинхронный компьютер с системой постоянного хранения данных. На самом деле далеко не первый, но это не важно. Интересно что если вы разделите барабан по числу зубчиков, и будете поочереди прокручивать каждый получившийся диск, то музыки не получится. Зато. В таком виде можно будет легко записать номер зубчика, тайминг (либо расстояние). И передать на другую шарманку. Вот у нас готов первый транспортный протокол. Тоже не первый. Первый - иероглифы. Первый транспортный - наскальная живопись. А вот протокол - иероглифы. Египетские. Домашним заданием будет найти в интернетах где я вам наврал. Не суть. Информация нужна для запуска действия. Запуска смены действия. Запуска останова действия.
Вас тоже коробит это всратое "останов"? если да, ставьте лайк. Вот нам всегда надо придумать своё слово. Скважность, останов, сортамет, фитинга.
Возвращаемся. А точнее переносимся в начало 19го века. в 1800й год. Тогда начали широко распространяться паровые двигатели. И что дал паровой двигатель? Правильно. Многократные итерации простых действий. Если раньше ослик за морковкой ходил по кругу за пять минут. То теперь за пять минут вал проворачивал какую-нибудь прялку сотню раз. А вот на прялке закончилась нить. Надо как-то сообщить об этом паровому двигателю... Пока оставим станки. Главное, они освободили уйму времени для того чтобы люди смогли заниматься всякой хернёй обучением. И вот один такой философ в попытке натянуть гондон на глобус математику на на логику самого Аристотеля, вернул на хайп эти ваши конвекции дизъюнкции и двойные отрицания. Ему удалось далеко не всё, но он многих вдохновил. Если никто ничего не понял, то речь о Джордже Буле и его булевой алгебре. Мы не будем вдаваться в подробности, просто когда увидите тип переменной boolean. это вот про Джорджа. Вообще если нормальная математика прогрессирует и регулярно плодит абстракцию за абстракцией, то философия, наоборот, призывает к отрезанию яиц абстракций специальной бритвой. Итак. У нас есть много машин. Взрывное увеличение скорости труда. Повышение грамотности. И логично, что появляется спрос на обмен информацией. На быстрый и далекий обмен информацией. Возникает потребности общения человека и машины.

интерфейс

Вообще, если пофилософствовать, то первый интерфейс появился когда обезьяна стала обрывать сучья с палки, чтобы было удобней тиранить саблезубых. А вот слово, обозначающее часть которая отвечает за взаимодействие, придумали только в конце прошлого столетия. Почему интерфейс важен? Наверное потому же почему масло маслянное. Не так. На заре времен... просто хотелось вставить эту фразу Вместо того, чтобы оглашать прописные истины про удобство, скорость и коэффициент полезного действия, задумайтесь вот над чем. Программный код это тоже форма интерфейса. Код тоже должен быть удобен. А современные технологии позволяют избавиться от кода вообще. Всё что нужно соблюсти баланс, между крт|кмфрт краткостью и комфортом. Домашнее задание: объяснить мне что такое интерфейс.

точность передачи скорость масштабируемость модернизация безопасность

Ладно. Колесико повернулось, концевик сработал, лампочка зажглась слюна отделилась. Нужно как-то среагировать. Дернуть рычаг, потянуть ручку. Возникает проблема. Механическое управление это либо сильно, либо точно. А если нужно и так и так. А ещё люди лажают, косячат, устают, засыпают как я сейчас и не выделяют слюну не могут делать что-то долго и с одинаковой точностью. А ещё для такого управления требуется большой отбор мощности. Если для больших станков это - не проблема, то простые ручные приборы проигрывают гонку механической автоматизации.

Dmitrii Dobrov's Projects

my_resume_ru icon my_resume_ru

Покажи мне свой гитхаб и я скажу кто ты

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.