Найти в Дзене
Основы программирования. Высокоуровневые функции с многими параметрами заменяют низкоуровневые методы.
С помощью высокоуровневых функций можно существенно облегчить жизнь программиста, хотя настоящий программист должен знать все, что творится "под капотом" хотя бы в общих чертах. Это значит, что в высокоуровневых функциях находится часто повторяющийся код, который до вас уже написали другие программисты. Разумеется, вам этот код нужно знать, хотя необязательно самому каждый раз переписывать его заново, лучше применять высокоуровневые функции и операторы. При применении высокоуровневых функций главной проблемой может являться в основном только применимость конкретной низкоуровневой части кода к...
2 года назад
Основы программирования. Обобщения или женерики являются еще одним неполноценным чертежом объекта!
Давайте в данной статье кратко обсудим смысл всех обобщений или женериков, которые по своей сути являются неполными чертежами типа объекта, то есть они очень близки по смыслу с интерфейсами и абстрактными классами. Нужно понять, чем обобщения отличаются от интерфейсов и абстрактных классов, а отличаются они видом неполноценности чертежа объекта. Таким образом, интерфейсы и абстрактные классы неполноценны в области пустотелых методов, которые в них полностью не определены или представляют собой каркасы функций. Что касается обобщений, то женерики неполноценны именно в неопределенности типов применяющихся внутри них комплектующих объектов...
3 года назад
Основы программирования. Всего бывают три вида подключаемых библиотек.
Всего на данный момент мне известны три вида библиотек, которые можно подключить к любым программам или к коду. Если в реале есть еще какие-то виды библиотек, то я обязательно их добавлю и подкорректирую данную статью в новом издании. Но пока я не нашел более трех видов библиотек... Три вида библиотек: 1. Так называемые динамические библиотеки в виде динамически подключаемых файлов (типа dll), в данном случае вы создаете из какой-то отдельной библиотеки готовую сборку в виде одного или нескольких файлов dll и возможно к ним прикрепляете еще какие-то файлы ресурсов. В итоге вы подключаете к своему...
3 года назад
Основы программирования. Приведение коробок и их миграция по объекту.
На картинке показаны примеры приведения коробок в рамках одного большого объекта, когда ссылки и указатели указывают на разные части сложного объекта, так как каждая коробка сделана либо под целый объект, либо под его определенную часть. Картинка для иллюстрации: То есть вы можете создавать коробки от частей объектов. Примером являются коробки от интерфейсов или абстрактных классов, да и обычных базовых классов при наследовании. Например, коробка от интерфейса включает в себя полностью все его методы и компоненты, ибо нет смысла делать коробки от частей интерфейса, ведь вы не можете построить объект по чертежу интерфейса или абстрактного класса...
3 года назад
Основы программирования. Коробки от объектов расширяющего наследования.
Особенность расширяющего наследования состоит в том, что объект-наследник содержит всегда внутри себя такую часть объекта, которая полностью по типу или чертежу идентична объекту-предку. Из этого факта получается сверхважный вывод, что любая коробка от предка может хранить в себе любые объекты-наследники вниз по иерархии, при этом в данной коробке содержится часть объекта-наследника, которая полностью по типу идентичная типу целого объекта-предка! Именно отсюда мы получаем все фантастические возможности ссылок и указателей при наследовании, когда в коробку верхнего объекта по иерархии наследования...
3 года назад
Основы программирования. Как работают "под капотом" все свойства и индексаторы?
В языке C# не очень давно ввели понятия свойств и индексаторов, которые стали по своей сути прокладками в виде методов геттеров и сеттеров между конечной скрытой переменной и внешним миром. В данной статье разберем подробно механизм данных удобных сущностей, так как скорее всего эти элементы присутствуют в других языках программирования или будут присутствовать позже. До существования свойств и индексаторов просто создавали методы геттеры и сеттеры, которые клали и извлекали скрытые в классах конечные переменные через свои фильтры проверки. По сути свойства и индексаторы в стандартном понимании...
3 года назад
Основы программирования. Коробки ссылки и указатели можно использовать совсем не хуже объектов с именем!
Здесь снова для вас публикую сверхважную тему программирования, где поясню, как можно полностью коробками (ссылками и указателями) заменить именные объектовые переменные практически без единого минуса. Вам об этом в мире точно никто не расскажет. Так как всего существуют четыре способа доступа к объекту, то есть вызов объекта по имени, вызов объекта по ссылке, по указателю, вызов объектов через методы и операторы вроде new при создании, то альтернативой именному вызову объектов являются вызовы по ссылкам и указателям, то есть через коробки объектов. В С++ указатели или имена объектов являются предпочтительным...
3 года назад
Картинка. Объект наглядно с коробками и всеми типами наследования.
Предлагаю вам понять всю сущность мира наследования объектов и коробок на примере нарисованного мной рисунка. Здесь я постарался изобразить почти все типы наследования и коробок от частей объекта.. Не судите меня строго, ибо я рисовал в Paint и на мышке, встроенной в ноутбук, то есть водя пальцем по мелкому окну. Итак, на картинке изображен сложного вида большой объект в памяти серым цветом, который имеет множественное наследование, то есть внутри себя содержит и каркас методов интерфейса в одной части, в другой части серый объект содержит совместно каркас и полное тело абстрактного класса, в еще...
3 года назад
Основы программирования. Как работают ссылки и указатели на массивы в C++, Java, C# "под капотом"?
Сказать снова, что эта вещь сверхважна для понимания всего программирования, то это не сказать почти ничего, так как поведение коробок в массивах C++/C, C#, Java просто фантастически поможет вам одновременно и понимать механизмы поведения коробок от частей объектов в наследовании и интерфейсах. Казалось бы, что это совсем разные темы и природа здесь различна, но это вообще не так, ибо в наследовании и в массивах применяются "под капотом" абсолютно такие же принципы механики коробок от объектов. Конечно, у вас глаза на лоб лезут, потому что в мире вам этого никто еще не говорил, но в данной статье...
3 года назад
Картинка. Почему у классов Java и C# не может быть указателей?
Нужно сказать, что в Java вообще нет указателей, так как их просто решили запретить там и все, сделав язык особо "безопасным". Но в языке C# есть указатели, только для их использования нужно блок данного кода указать в виде unsafe или класс или метод можно пометить модификатором unsafe и тогда можно использовать указатель, но только еще требуется дополнительно компилятору в настройках дополнительно приказать об использовании указателей, но в Visual Studio это делается в две секунды, то есть просто нажимаете мышкой и среда за вас подключает проект к использованию указателей в C#. unsafe { /* в...
3 года назад
Основы программирования. Коробочные и безкоробочные объекты в C++, Java и C#
Снова скажу банальность, что эта тема является сверхважной, ибо по ссылкам и указателям (коробкам) происходит практически весь доступ к объектам в программировании, а еще доступ к переменным происходит по имени или операторами-методами, как при создании объектов с помощью операторов new, когда объект вызывается без коробок и без имени. Подробно о четырех способах доступа к объектам или переменным читайте статью на эту тему, которая скоро выйдет. В языках C# и Java решили навести порядок с путаницей, которая происходит в языке C++ в случае использования ссылок и именных объектов. Путаница в том,...
3 года назад
Основы программирования. Внутрь метода параметр копируется или передается напрямую!
Еще раз повторяем три основных и единственных в мире программирования способа передачи данных со входа на выход, два из которых являются шлюзовой операцией, а третий способ является приведением типа от одного к другому или серией идущих подряд таких приведений, который почти всегда происходит перед шлюзовыми операциями! Заодно проясним принцип закидывания внутрь параметров в методы и операторы. Если вы хотите стать настоящим программистом, то вы на всю жизнь должны усвоить этот принцип передачи параметров при вызове внутрь в методы, функции или операторы, которые также являются статическими методами "под капотом"...
3 года назад