7 922
订阅者
-124 小时
-57 天
-2930 天
帖子存档
7 920
Просто ли стать Java-разработчиком? Нет. Всем ли подойдет IT? Тоже нет. Стоит ли попробовать? Да.
Если вы хотите стать востребованным разработчиком, вам нужно не просто научиться писать код. А в первую очередь сформировать инженерное мышление.
На этом построен процесс обучения на Хекслете. На профессии «Java-разработчик» вас ждет не только теория, но и много практики:
✔️ Сотни упражнений в браузере.
✔️ 5 проектов для портфолио на GitHub.
✔️ 150 тестовых заданий от наших партнёров.
✔️ Вебинары, сессии лайвкодинга с наставником 1-2 раза в неделю.
Сделайте шаг в карьере в IT-специалиста прямо сейчас! Переходите по ссылке выше и начните обучение!
🎁 Пройдите первые 10 бесплатных уроков из профессии и получите дополнительно скидку 10%
7 920
Зачем нужны указатели?
Указатели нужны для того, чтобы можно было напрямую работать с оперативной памятью.
Указатели позволяют экономить выделение памяти: когда в функцию вместо переменной передаётся указатель, компьютер не создаёт её локальную копию, а обращается к ней напрямую.
Второе применение указателей — динамическое управление памятью. Если нам нужно выделить в памяти некоторую область для хранения своих данных, но стандартные переменные нам не подходят, мы можем использовать указатель.
В этом случае мы помещаем в него стартовый адрес ячейки и говорим, сколько байтов после него нужно использовать и что в них положить.
7 920
В avito.code — шоу для разработчиков — появилась серия роликов про Neovim.
Инженер Авито Антон Губарев рассказывает о совместимости редактора с другими программами. Из нового выпуска вы узнаете, как делать запросы через cURL, не выходя из Neovim.
Реклама. ООО «Авито Тех».
7 920
Что такое указатели в программировании?
Кратко говоря — это ссылка на ячейку в оперативной памяти. Указатели считаются сложной темой, но на самом деле в указателях нет ничего сложного.
Когда мы заводим новую переменную, компьютер выделяет для неё место в оперативной памяти.
Количество этих ячеек зависит от типа данных, который хранится в этой переменной: обычно для int - 2 байта, float — 4, double— 8, для строки — столько же, сколько и символов и ещё 1 служебный байт.
Но сколько бы байтов ни выделил компьютер для хранения, он выделяет эти байты подряд, друг за другом, и запоминает два момента:
1. Сколько байтов занимает переменная.
2. По какому адресу в памяти находится первый байт этой переменной.
Если совсем упростить, то адрес в памяти — это порядковый номер ячейки, где хранится байт. Так вот, в указателях как раз хранятся адреса памяти, где начинаются разные переменные.
7 920
Что такое low-code?
Лоу-код — это почти такая же зерокодовая платформа для программирования, но где можно в любой момент зайти в код и дописать что-то своё.
При этом лоу-код необязательно будет таким же лёгким, как и конструктор. Слово low означает, что его нужно будет написать не очень много, но сам код может быть на любом языке.
Кратко:
⁃ Это приложения на базе zero-code, в которых можно что-то дописать вручную.
⁃ Это нужно, чтобы расширить возможности конструкторов zero-code.
⁃ Дописанный код при этом необязательно будет простым. Он бывает вполне взрослым и сложным.
⁃ Если вы можете написать low-code, вероятно, вы сможете написать всё приложение с нуля.
7 920
Зеро-код — что это?
В мире разработки есть концепция Zero Code — это когда программы, сервисы и всякая автоматизация делается не с помощью кода, а с помощью более наглядных и визуальных инструментов.
Самое популярное — конструкторы сайтов. Мы уже привыкли, что половина сайтов в интернете сделана на «Тильде». Не нужно знать HTML, CSS и JavaScript, достаточно собирать сайты из готовых блоков.
Главный плюс: сайты можно делать за минуты и часы, а не за дни и недели.
Главный минус: ограничения по внешнему виду и структуре. Конструкторы имеют какие-то заданные шаблоны, в которых ты набираешь текст и вставляешь картинки. Чтобы вылезти из шаблона, нужно писать код. А мы хотели без кода.
7 920
Разница между шифрованием и кодированием
Если кодирование нужно, чтобы сделать информацию понятной для всех, то шифрование работает наоборот — прячет данные от всех, у кого нет ключа расшифровки.
Задача шифрования — превратить данные, которые могут прочитать все, в данные, которые может прочитать только тот, у кого есть специальное знание (ключ безопасности, сертификат, пароль или расшифровочная матрица). Если пароля нет, то данные внешне представляют из себя полную бессмыслицу.
Шифрование используют:
⁃ госорганы, чтобы защитить персональные данные граждан;
⁃ банки, чтобы хранить информацию о клиентах и о переводах денег;
⁃ мессенджеры, чтобы защитить переписку;
⁃ сайты;
⁃ мобильные приложения;
⁃ и всё остальное, что связано с безопасностью или тайнами.
7 920
Кодирование
Представление данных в каком-то виде, с которым удобно работать человеку или компьютеру.
Кодирование нужно для того, чтобы все, кто хочет, могли получать, передавать и работать с данными так, как им хочется. Благодаря кодированию мы можем обмениваться данными между собой — мы просто кодируем их в понятном для всех виде.
Для примера возьмём букву «б». Её можно произнести как звук — это значит, что мы закодировали эту букву в виде звуковой волны. Также эту букву можно написать прописью или в печатном виде. Всё это примеры кодирования буквы «б», удобные для человека.
В компьютере буква «б» кодируется по-разному, в зависимости от выбранной кодировки внутри ОС.
Кодирование — это то, как удобнее воспринимать информацию тем, кто ей пользуется.
7 920
В чём уникальность языка программирования LISP
1. Условные конструкции
If/then/else впервые появились именно в языке Lisp.
2. Функции
В этом языке функции находятся на том же уровне, что и строки или числа.
3. Рекурсия
Несмотря на то, что она была известна гораздо раньше появления Lisp, впервые она была реализована именно в нём.
4. Переосмысление переменных
Все переменные представляют собой указатели.
5. Сборка мусора
Механизм эффективного автоматического контроля памяти, который стирает из неё ненужные объекты, впервые появился именно в Lisp-е.
6. Вся программа построена на основе выражений
Стандартная Lisp-программа представляет собой деревья выражений, которые могут возвращать конкретные значения.
7 920
NAND Flash Memory
NAND память была изобретена после NOR, и также названа в честь особой разметки данных Not AND – логическое Не-И.
NAND память записывает и считывает данные с высокой скоростью, в режиме последовательного чтения, упорядочивая данные в небольшие блоки (страницы).
Память NAND может считывать и записывать информацию постранично, однако не может обращаться к конкретному байту, как NOR.
NAND обычно используют в твердотельных накопителях (SSD), аудио и видео проигрывателях, телевизионных приставках, цифровых камеры, мобильных телефонах (для хранения пользовательской информации) и других устройствах, в которых данные, как правило, записываются последовательно.
7 920
Файловая виртуализация
В средах NAS каждое устройство представляется для пользователя в виде отдельного накопителя. Первоначально это было достаточно разумным решением. Но с ростом компаний неизбежно приходит время, когда емкости одного NAS становится недостаточно и файлы располагаются уже на нескольких NAS.
Многие предприятия используют для этого распределенные файловые системы, работающие на нескольких NAS-устройствах. Существуют две реализации схемы:
Пространство глобальных имен: в данном случае глобальная, или распределенная, файловая система устанавливается "поверх" нативных файловых систем NAS-устройств и предоставляет возможность монтировать их как единое устройство.
Замещающая файловая система: вместо агрегирования файловых систем отдельных NAS-устройств в единое устройство, глобальная файловая система подменяет нативные файловые системы.
7 920
💻 Компьютерные сети - это основа, которую должен знать каждый IT-специалист.
В Telegram появился канал, в котором можно изучить самое важное про компьютерные сети.
🌍 Network Admin - авторский блог о компьютерных сетях от действующего сетевого администратора.
7 920
NOR Flash Memory
Память NOR, названная так в честь особой разметки данных Not OR – логическое Не-ИЛИ, является высокоскоростной памятью Flash.
Память NOR предоставляет возможность высокоскоростного, случайного доступа к информации, и обладает способностью записывать и считывать данные в определенном месте без необходимости обращаться к памяти последовательно.
В отличие от NAND памяти, память NOR позволяет обращаться к данным размером до одного байта.
Технология NOR выигрывает в ситуациях, когда данные случайным образом записываются или читаются. Поэтому NOR чаще всего встраивают в сотовые телефоны (для хранения операционной системы) и планшеты, а также используется в компьютерах для хранения BIOS.
7 920
Интерфейсы доступа к кэшу
Кольцевая шина
Является связующим компонентов процессора: ядра, кэш, системный агент (он же северный мост) и графическое ядро. Состоит из четырех организованных колец: шина данных, шина запросов, шина мониторинга и шина подтверждения. Каждое кольцо способно передавать 32 байта данных за один такт.
Mesh (сетка)
Сетчатая шина. В ней сохранены достоинства и устранены недостатки кольцевой шины. Сегодня она применяется в серверных решениях Intel
Infinity Fabric
Система передачи и контроля данных. Состоит из двух конвейеров, один для управляющих сигналов, другой для транспортировки данных. С помощью данной шины связываются несколько чиплетов (чиплет/чипсет – маленький комплекс ядер и кэшей L1, L2 и L3), ОЗУ и интерфейсы ввода/вывода
7 920
Уровни кэша
Кэш центрального процессора разделён на несколько уровней. В универсальном процессоре в настоящее время число уровней может достигать трёх:
Первый уровень (L1) – самый быстрый, самый маленький по объему, входит в состав функциональных блоков ЦП. Обычно L1 разделён на два кэша — кэш команд и кэш данных. У каждого ядра процессора свой участок памяти
Второй уровень (L2) – больше, чем L1, раньше реализовывался в виде отдельной микросхемы. Сегодня же L2 также является частью ядра ЦП. Как и L1, L2 является памятью раздельного пользования
Третий уровень (L3) – самый большой, но самый медленный из-за того, приходится проходить все шины. Реализован в виде отдельной микросхемы. Также память L3 – общая для всех ядер. Используется для того, чтобы мы могли синхронизировать данные которые находятся на втором уровне между различными ядрами
7 920
Виртуализация на базе специализированного устройства
Данные, связанные с виртуализацией, размещаются в специальном устройстве (иногда его называют виртуализатором), которое включается между хостами и подсистемами хранения.
Различают 2 типа:
Виртуализация in-band
Управляется специальным устройством, виртуализатором, через который также проходит поток данных.
1. У нас сервер приложение, которое хочет обратиться к системе хранения данных и запрасить данные у виртуализатора
2. Виртуализатор интерпретирует этот запрос и физически находит необходимые данные.
3. Далее происходит обмен сообщениями
Виртуализация out-of-band
Виртуализатор стоит в стороне от потока данных. Обрабатывает и передаёт информацию только, где находятся необходимые для сервера файлы.
1. Сервер делает запрос
2. Виртуализатор подготавливает информацию и отправляет системе хранения данных.
3. Система хранения определяет физическое положение, отдаёт их Виртуализатору
4. Виртуализатор отвечает серверу, где и как достать данные
7 920
Компоненты, из которых состоит система с интерфейсом SAS
Инициатор
Устройство, которое порождает запросы на обслуживание для целевых устройств и получает подтверждения по мере исполнения запросов
Целевые устройства
Содержит логические блоки и целевые порты, которые осуществляют прием запросов на обслуживание, исполняет их; после того, как закончена обработка запроса, инициатору запроса отсылается подтверждение выполнения запроса.
Подсистема доставки данных
Является частью системы ввода-вывода, которая осуществляет передачу данных между инициаторами и целевыми устройствами.
Расширители
Устройства, входящие в состав подсистемы доставки данных и позволяют облегчить передачи данных между устройствами SAS. Подключение через расширитель является абсолютно прозрачным для целевых устройств
7 920
:vimtutor — используйте эту команду, чтобы постичь азы редактора NeoVim, или смотрите серию роликов от Антона Губарева, PaaS-инженера Авито.
В коротких видео Антон рассказывает, как им управлять и как настраивать редактор, в котором можно запрограммировать любой плагин. Первый ролик уже в avito.code.
Реклама. ООО «Авито Тех». LdtCKhYWQ
7 920
Виртуализация на базе специализированного устройства
Данные, связанные с виртуализацией, размещаются в специальном устройстве (иногда его называют виртуализатором), которое включается между хостами и подсистемами хранения.
Различают 2 типа:
Виртуализация in-band
Управляется специальным устройством, виртуализатором, через который также проходит поток данных.
1. У нас сервер приложение, которое хочет обратиться к системе хранения данных и запрасить данные у виртуализатора
2. Виртуализатор интерпретирует этот запрос и физически находит необходимые данные.
3. Далее происходит обмен сообщениями
Виртуализация out-of-band
Виртуализатор стоит в стороне от потока данных. Обрабатывает и передаёт информацию только, где находятся необходимые для сервера файлы.
1. Сервер делает запрос
2. Виртуализатор подготавливает информацию и отправляет системе хранения данных.
3. Система хранения определяет физическое положение, отдаёт их Виртуализатору
4. Виртуализатор отвечает серверу, где и как достать данные
7 920
Блоковая виртуализация
Ограниченная масштабируемость и управляемость среды DAS заставляют компании переходить на сетевые архитектуры хранения. При этом увеличивается сложность систем хранения.
В среде DAS серверы приложений могут размещать только тома, а при размещении томов возникают следующие ограничения:
• тома не могут покрывать несколько подсистем хранения
• каждое устройство хранения предназначено для работы со своим сервером, и другие серверы не могут пользоваться "излишками" чужой подсистемы хранения
Виртуализация совместно с сетевым хранением помогает преодолеть оба этих ограничения:
• предусмотрено объединение емкости разных устройств хранения, соответственно, объем одного тома может превышать емкость одного устройства.
• разные серверы могут пользоваться свободными ресурсами хранения.
Виртуализация помогает скрыть сложность структуры ресурсов хранения данных и в результате получить более простую среду хранения.
现已上线!2025 年 Telegram 研究 — 年度关键洞察 
