Ставьте лайк и смотрите снова, формируйте привычку, ищите в WeChat【Третий принц Ао Бин] Обратите внимание на этот инструмент человека, который борется за выживание в Интернете.
эта статьяGitHub github.com/JavaFamilyВключено, и есть полные тестовые площадки, материалы и мой цикл статей для интервью с производителями первой линии.
предисловие
Давно хотел написать этот выпуск, но в силу временных причин он до сих пор откладывался, думал, что закончу за день-два, в итоге от задумки до аранжировки материалов прошло около недели и выписать его.
Вы также знаете, что Bing Bing всегда был творческим гением, поэтому я точно не буду писать его всерьез.Я думал о нескольких точках входа и, наконец, решил использоватьПолная система электронной коммерцииВ качестве отправной точки я покажу вам, что нам нужно изучить, я даже собрал вспомогательные видео и материалы.теплый человекКаменный молот, этот вопрос кропотливая работа,не занимайся проституцией.
текст
Прежде чем написать эту статью, я некоторое время сам представлял себе систему электронной коммерции.По сути, это маленький воробей со всеми внутренними органами.Я буду использовать его сегодня и поэтапно разбирать.Расскажу о технологиях, которые мы можем вступить в контакт с. Стек может быть неполным, но этого достаточно, и, наконец, дать маршрут обучения.
Tip: Пожалуйста, наслаждайтесь этим некоторое время, посмотрите на каждый пункт и посмотрите, с чем вы столкнулись и с каким стеком технологий вы не знакомы. Я думаю, что он относительно завершен. Если у вас есть какие-либо предложения, вы можете оставить сообщение меня.
Я не знаю, прочитал ли все. Теперь мы собираемся решить проблему. Я проанализирую его сверху вниз.
внешний интерфейс
Вам может быть любопытно, вы не говорите о back-end трассе обучения, почему есть front-end часть, я могу вам только сказать,дурак,мелкий.
мы можемНе могу работать за закрытыми дверями, кто вам сказал не изучать фронтенд в бэкенде?
Многие front-end люди также понимают стек технологий back-end.Как вы думаете, мы заходим на сайт, что такое первый контакт и первое, что мы видим?
Верно, это интерфейс. Если вы не можете найти в колледже одноклассника, посвященного интерфейсу, вам определенно придется работать над интерфейсом самостоятельно, чтобы построить систему. Тогда я думаю, что самый базовый технологический стек должен быть знакомым и понятным. Bing и Bing теперь время от времени развиваются Наша система управления в основномVUEиReact.
Здесь я перечисляю технологические стеки, которые я считаю относительно простыми и которые мы можем понять на бэкэнде, которые являются относительно базовыми.
В качестве бэкенда все же необходимо понимать некоторые знания фронтенда.При разработке в будущем, если у компании есть фронтенд, это может помочь вам сделать совместную отладку фронтенда и бэкенда более плавной. .
HTML,CSS,JS,AjaxЯ думаю, что это то, что нужно освоить. Если это выглядит просто, есть еще много вещей, если вы хотите углубиться в это или управлять им. Другие можно понимать как расширение. В любом случае, начать работу легко, но это очень трудно освоить.
В этом слое есть не только эти, но иHTTP-протоколи сервлет,request,response,cookie,sessionОни также будут с вами на протяжении всей вашей технической карьеры, и их понимание определенно принесет вам пользу в дальнейшем.
Tip: Я наконец удалил это здесьJSPЯ лично считаю, что нет необходимости изучать смежные технологии, многие компании не будут использовать эти технологии для новых проектов, за исключением старых проектов.
На мой взгляд, фронтенд сложнее, чем бэкэнд, технология повторяется быстрее, а знания, кажется, не имеют определенной системы, поэтому многие друзья фронтенда, которые брали интервью у крупных фабрик, сказали, что это было сложно. Полная система, напротив, бэкэнд намного понятнее, и я начну говорить о бэкэнде позже.
Уровень шлюза:
С момента развития Интернета до настоящего времени появилось множество интернет-компаний, и технология была обновлена во многих версиях, от ранней автономной эпохи до нынешней сверхбольшой эпохи Интернета, путешествия Весеннего фестиваля с сотнями миллионов людей, и Double Eleven с сотнями миллиардов транзакций.Бесчисленные предшественники Интернета создали сегодня славу Интернета.
Микросервисы,распределенный,балансировки нагрузкиЭти термины, которые мы часто упоминаем, поддерживаются этими технологиями за кулисами.
Если одиночная машина не выдержит, мы найдем еще серверы, но как равномерно распределить трафик по этим серверам?
балансировка нагрузки, LVS
Доступ ко всем нашим машинам осуществляется по IP, так как же мы можем запросить сервер через доменное имя, на которое мы подали заявку?
DNS
Как поставщики видеоуслуг, такие как Douyin, Station B, Kuaishou и т. д., которых вы используете, обеспечивают одновременную быструю работу пользователей по всей стране?
CDN
Как мы управляем планированием такого количества систем и служб, а также планирования такого количества промежуточного программного обеспечения и т. д.?
zk
С таким количеством серверов, чтобы единообразно получить доступ к внешнему миру, вам может понадобиться знать сервер обратного прокси.
Nginx
Этот слой готовОбратная загрузка, маршрутизация услуг, управление услугами, управление трафиком, изоляция безопасности, отказоустойчивость услугПодождите, компания каждогоИзоляция внутренней и внешней сетиЭто также делается на этом уровне.
Я и раньше сталкивался с некоторыми интересными проектами, все внешние интерфейсы зашифрованы, десятки сервисов будут расшифрованы через шлюз, а реальный маршрут будет найден до запроса.
На самом деле в этом слое много точек знаний, вы научитесь открывать их позже.Распределенная транзакция, распределенная блокировкаЕсть много промежуточных программ неотделимыzkЭтот слой мы продолжаем смотреть вниз.
Сервисный слой:
В этом слое есть что-то, что является ядром всего фреймворка.Если вы, как и я, Shuai C, занимаетесь бэкэнд-разработкой, мы в основном тратим большую часть своей технической карьеры на работу со стеком технологий этого уровня. разнообразие промежуточного программного обеспечения, базовые знания компьютера, работа с Linux, структура данных алгоритма, структура архитектуры, инструменты для исследований и разработок и т. д.
Я думаю, что каждый, кто читает эту статью, должно быть, изучил основы компьютера.Если вы не учились в колледже, я думаю, что необходимо прочитать ее еще раз.
Почему наши веб-страницы могут гарантировать безопасную и надежную передачу, вы можете понятьHTTP, протокол TCPКакие три рукопожатия, четыре раза помахать.
иПроцессы, потоки, сопрограммы, какие барьеры памяти, инструкции не по порядку, прогнозирование ветвлений, привязка к ЦППодождите, в будущей карьере программиста, если вы сможете освоить эти вещи, вы сразу же попадете в точку, когда столкнетесь с кучей проблем, вместо того, чтобы бегать как безголовая муха (но C и C недостаточно).
После понимания этих компьютерных знаний вам нужно прикоснуться к языку программирования,язык СиОсновы помогут вам быстро выучить любой язык, я выбрал объектно-ориентированныйJAVA, но я не знаю, почему еще нет объекта.
Основы JAVA так же важны,объектно-ориентированный(включая классы, объекты, методы, наследование, инкапсуляцию, абстракцию, полиморфизм, синтаксический анализ сообщений и т. д.), общие API, структуры данных,Рамка коллекции,Шаблоны проектирования(включая творческие, структурные и поведенческие),Многопоточность и параллелизм,Потоки ввода-вывода, потоки, сетевое программированиеВы все должны знать.
Код будет написан, и вы начнете изучать некоторые фреймворки, которые помогут вам сделать систему более стандартизированной, а SSM сделает вашу разработку более удобной и структурированной.
Когда вы будете писать код, вы обнаружите, что ваш университет используетEclipseВы не можете видеть это в компании, вы используете его, как и все остальныеIDEA, что это за штука в первый день, через неделю она реально ароматная, но эта штука дороговато, и она бесплатнаяVSCodeЭто действительно хороший выбор.
Когда вы пишете код, вы сталкиваетесь с инструментами управления складом кода.maven,Gradle, когда вы отправите код, вы напишете инструмент управления версиями проектаGit.
После того, как код будет отправлен и опубликован, вы найдете много вещей, которые нужно проверить самостоятельно на сервере.LinuxВ нем можно гибко использовать очки знаний, просмотр процесса, просмотр файлов, различныеVimоперация и так далее.
Во многих местах системы нет места для оптимизации, вы можете попробовать начать салгоритмили оптимизироватьструктура данныхДля оптимизации вы видите исходный код HashMap, хотите понять красно-черное дерево, а затем видите дерево поиска двоичного дерева и различные общие проблемы алгоритма на сайте алгоритма.Если вы почистите больше, вы также можете обобщить суть, КакиеЖадность, разделяй и властвуй, динамическое программированиеЖдать.
Так много услуг, которые вы найдетеHTTPЗапрос начал не соответствовать вашим потребностям.Вы хотите разработать более удобный и доступ к удаленным сервисам, как доступ к локальным сервисам, поэтому мы пошли разбиратьсяДаббо, весеннее облако.
В процессе изучения Dubbo вы открыли для себя суть RPC, поэтому соприкоснулись с высокопроизводительнымиNIOРамка,Netty.
Код написан, и служба может общаться, но вы обнаружите, что ваша ссылка на код очень длинная, и все они связаны вместе, поэтому вы связалисьочередь сообщений, этот метод асинхронной обработки действительно ароматный.
Это также может помочь вам использовать очереди для буферизации, когда есть всплеск трафика, но если вы обнаружите, что в распределенной ситуации управлять транзакцией непросто, и вы узнали о распределенных транзакциях, чтоДвухэтапный, трехэтапный, TCC, XA, глобальная транзакционная служба Ali GTSи Т. Д.
Когда вы хотите знать о распределенных транзакцияхRocketMQ, поскольку он предлагает решение для распределенных транзакций, вы снова видите сцену больших данныхKafka.
я упоминал вышеzk,рисунокDubbo,KafkaВсе промежуточное ПО использует его как реестр, поэтому многие стеки технологий в конечном итоге образуют систему знаний, подключить их можно только после того, как вы поймете каждого члена системы.
Взаимодействие служб изменилось с внутрипроцессного взаимодействия на удаленное, поэтому производительность неизбежно пострадает.
Кроме того, из-за множества неопределенных факторов, таких как перегрузка сети, простои сервера на стороне сервера, обрезание экскаватором оптоволокна в машинном зале и т. д., требуется множество дополнительных функций и мер для обеспечения бесперебойной и стабильной работы микросервисов. .
Spring CloudвАвтоматический выключатель Hystrix, балансировщик нагрузки Ribbon client, реестр Eurekaи т. д. — все компоненты микросервиса, используемые для решения этих задач.
Вы чувствуете, что почти научились, и вы обнаружите, что на крупных форумах и в блогах появились некоторые передовые технологии, такие как контейнеризация, вы можете узнать о знаниях контейнеризации, таких какДокер, Кубернетес (K8s)Ждать.
Важной причиной быстрого развития микросервисов является развитие технологии контейнеризации и зрелость систем управления контейнерами.
Вещей на этом уровне на самом деле гораздо больше, я не буду повторять их слишком много и писать слишком много, как учитель, который уговаривает их бросить курить, но вам не нужно паниковать, поймите, углубитесь.
Ладно, продолжим смотреть вниз по карте, что дальше?
Слой данных:
База данных, наверное, самая ценная часть всей системы. За день до написания текста веймобовские программисты удалили базу и убежали. Удалили базу и убежали, вообще-то, наша самая распространенная шутка в интернете. Я не ожидал этого.
Позвольте мне немного упомянуть здесь.36-часовой сбой на самом деле шутка в интернет-компании.Контроль разрешений сделан не очень хорошо.rm -rf, fdisk, дропТакие рискованные команды могут быть перехвачены в режиме реального времени.Резервное копирование, полное резервное копирование, добавочное резервное копирование, отложенное резервное копирование, удаленное аварийное восстановлениеВсе рассмотренные вещи не должны иметь место, зарегистрированная на бирже компания по-прежнему немного не должна быть.
базовая база данныхУровень изоляции транзакции,Индексы, SQL, первичная синхронизация, разделение чтения и записиЭто может быть то, что вам нужно знать, когда вы учитесь.
Безопасность мы упоминали выше, не кладите яйца в одну корзину, все должны знать, тогдаФилиальная библиотекаСмысл очевиден, а то вы обнаружите, что данные в таблице большие спустя долгое время, и вы подумаете обратиться к подтаблице, что?TDDL,Sharding-JDBC,DRDSЭти плагины будут доступны.
Когда вы обнаружите, что трафик велик или горячие данные попадают в базу данных, все еще немного невыносимо, а давление слишком велико, тогда на рынок выйдет нереляционная база данных.RedisКонечно желательно, ноMongoDB, кэш памятиЕсть и свои сценарии применения.
После использования Redis, это действительно ароматно и быстро, но вы начнете беспокоиться о проблемах безопасности, упомянутых в начале.Эта штука быстрая, потому что работает в памяти.Что, если данные будут потеряны при нарушении точки останова? Вы начинаете читать официальную документацию, чтобы понятьРДБ, АОФЭти механизмы сохраняемости также будут встречаться при их использовании в Интернете.Лавинный сбой кэша, проникновениеИ так далее.
Если одиночная машина не устраивает, вы можете использовать ее.Его кластерный режим, если вы используете кластер, вы также можете беспокоиться о работоспособности кластера, поэтому вы должны пониматьчасовой,егосинхронизация ведущий-ведомый, спустя долгое время Ключей стало больше, надо пониматьмеханизм устранения памяти...
Что-то не так с его массовым хранилищем, возможно, вам придется это выяснить.Pika….
На самом деле это далеко не конец, я дошел до каждой точки, но на самом деле изучать каждую точку нужно долго, давайте посмотрим вниз.
В режиме реального времени/офлайн/большие данные
После того, как вы разберетесь с точками знаний нескольких реляционных и нереляционных баз данных, вы обнаружите, что данные по-прежнему велики, а сценарии работы с данными становятся все более и более разнообразными, поэтому вам нужно использовать различное промежуточное ПО для больших данных.
Вы найдете много сценариев, которые не требуют данных в реальном времени. Например, если вы проверите свои счета Alipay за прошлый год и последний месяц, эти данные не изменятся. Нет необходимости в данных в реальном времени. Тогда вы может вступать в контакт с такими людьми, какODPSТакое промежуточное ПО выполняет автономный анализ данных.
Затем вы можете вступить в контакт с вещами, связанными с семейством Hadoop, такими как YuХадуп (HDFS)инструмент хранилища данныхHive, представляет собой распределенную базу данных, ориентированную на столбцы, построенную поверх файловой системы Hadoop.HBase.
Написание множества сценариев подходит для выполнения некоторых простых запросов, и их использование немного излишне, тогдаCassandraЭто как нельзя более уместно.
Анализ данных в автономном режиме не может соответствовать некоторым общим задачам в реальном времени, таким как контроль рисков, а затемFlinkВы также должны знать кое-что, его оконное мышление по-прежнему очень интересно.
После обращения к данным механизм расчетаSparkТы не можешь просто отпустить это...
поисковый движок:
Традиционные реляционные базы данных и нереляционные данные NoSQL не могут решить некоторые проблемы. Например, когда мы ищем вещи на Baidu и Taobao, мы часто ищем вещи вместе с несколькими ключевыми словами. В базе данных, если мы не объединяем результаты нескольких раз. пересечение, иначе будет трудно добиться.
Потом родилась полнотекстовая поисковая система, которая решила проблему поиска.Приходится думать о том, как синхронизировать содержимое БД с БД в режиме реального времени.ESв середине, то вы могли бы подуматьlogstashЗаходите регулярно запускать синхронизацию скриптов, или заходите в контакт и притворяетесь имMySQLиз службыCanal, он подпишется на мастер-сервис MySQLbinlogА потом разобрал для работы свои данные в Эс.
Все это сделано, как решить запрос визуального фона?Kibana, он представляет собой платформу визуализации и даже визуализирует управление работоспособностью кластера Es, и многие компании используют его для систем запросов журналов.
маршрут обучения
После столь долгого просмотра вы заметили, что Шуай Бин только представляет стек технологий на каждом уровне и не упоминает конкретный маршрут. Это потому, что я хочу, чтобы у всех было понимание или грамотность в первую очередь. Давайте подытожим это в так же, как карта мозга.Если изображение подавлено второй платформой, вы можете перейти в общедоступный аккаунт, чтобы ответить [маршрут].
Материалы/Обучающие сайты
JavaFamily: GitHub поддерживается человеком, который зарабатывает на жизнь в Интернете.
CodeGym: Онлайн-курс по программированию на Java, 80% содержания — практика, подходит для новичков, которые ничего не знают.
Wibit Online Java Courses: очень интересный веб-сайт для обучения программированию, всевозможные яркие анимационные изображения могут заставить людей забыть о скучном обучении. Онлайн-видеообучение, очень подходящее для нулевой основы.
stanford CS106A: Programming Methodology: серия классических курсов Стэнфорда, без опыта программирования, если вы хотите выучить язык Java, вы можете взглянуть на этот курс.
Bloombenc: онлайн-платформа интерактивного обучения, где учителя могут изменять свои методы обучения в соответствии с вашими способностями к обучению и темпом, а вы также можете программировать на этой платформе.
Imooc: MOOC, здесь читается язык Си моего университета
CodeAcademy: более практичный онлайн-курс по Java, посвященный техническим навыкам, которые очень полезны при поиске работы.
PLURALSIGHT: Интегрируйте множество видеокурсов по Java, некоторые из них бесплатны, некоторые платные, вы можете выбрать в соответствии со своими потребностями.
Lynda Online Java Training Videos: расширенный курс Java, в том числе, как использовать JDBC для интеграции базы данных MySQL, Reflection API, управления файлами и каталогами и т. д.
Класс основных алгоритмов из девяти глав (Java): интерактивный онлайн-класс китайского языка, начните изучение в любое время.
BeginnersBook: Бесплатный учебник для начинающих по Java. После небольшого изучения основ программирования вы можете следовать коду в документе, чтобы попрактиковаться.
docs.Oracle.com/Java Color/Picture О...: Официальное руководство по Java очень полезно для понимания почти всех технических особенностей Java.
JournalDev: Руководства по Java и вопросы и ответы
JavaWorld: один из первых сайтов по Java, который каждую неделю обновляет технические статьи по Java.
developer.com/java:Зависит отGamelan.comПоддержка веб-сайта технических статей по Java.
Технический сайт IBM Developerworks: технологический сайт IBM Develperworks, который является домашней страницей технологии Java.
Совет: изначально в этой колонке было много информации, подготовленной мной, но все они являются внешними ссылками или неуместными методами обмена.Оператор блога напомнил мне, поэтому все перешли на официальный аккаунт, чтобы ответить [маршрут】Хорошо.
болтовня
Если вы хотите пойти в хорошую компанию, но нынешних хардов не хватает, я считаю, что надо много работать.Уровень технических возможностей может определить, как далеко вы пойдете, а уровень платформы может определить ваш рост .
Если вы успешно вошли в желаемую компанию благодаря тяжелой работе, вы не должны расслабляться. Рост на рабочем месте такой же, как и изучение новых технологий. Если вы не продвинетесь вперед, вы отступите.
Бинг Бинг обнаружил, что на работе люди вокруг меня действительно сильнее и усерднее они работают.Высшая самодисциплина, наслаждайтесь одиночеством(выходные кривые брат).
Суммировать
Вы хотите понять все технологические стеки, которые я упомянул. Я думаю, что предварительного понимания может хватить на несколько месяцев. Понимание здесь ограничено тем, что вы знаете о нем, что он делает и как его использовать, а не в глубокое понимание Его основополагающих принципов, понимание его общих проблем, знакомство с решениями проблем и т. д.
Если вы хотите сделать последнее, в основном вы можете полагаться только на накопление времени, или продолжать пытаться накапливать опыт, нет ничего быстрого, и все знают, что нет никакой спешки.
Честно говоря, дорога техники очень скучна и тяжела, но и зарплата будет выше, чем на некоторых других базовых должностях.
Честно говоря, я изучил это в колледже для интереса, я с детства интересовался электроникой и компьютерами, но сейчас я это отшлифовал.только за деньгиНу разве это не реально? Если семья богатая, кто хочет быть перемещенным.
Но, по крайней мере, Bing Bing изменил затруднительное положение его семьи из-за создания программного обеспечения, и его жизнь также шаг за шагом двигалась к зажиточной жизни.
Возможно, будет преувеличением сказать, что работа программистом изменила мою жизнь и жизнь моей семьи, но у меня всегда есть иллюзия, что моя жизнь изменится после того, как я закончу работу, потому что я выберу этот путь.
Я Ао Бин, мастер по инструментам, который живет в Интернете.
Это не просто создать, этот выпуск хардкорный, я не хочу быть проституткой по пустякам, твой«Три ссылки»Это самая большая движущая сила для создания Bing Bing, увидимся в следующий раз!
Статья постоянно обновляется, вы можете искать в WeChat "Третий принц Ао Бин"Прочтите это в первый раз, ответьте [материал】【интервью】【резюме] Подготовленные мной материалы интервью и шаблоны резюме крупных заводов первой линии, эта статьяGitHub github.com/JavaFamilyОн был включен, и есть полные тестовые сайты для интервью с крупными заводами.Добро пожаловать в Star.