Автор : Ло Хао
Примечание . С момента запуска проекта до получения звезд 8w+ мы получали отзывы о том, что основная часть (содержание первых 15 дней) сложна для новичков. Рекомендуется наличие вспомогательных видеороликов для объяснения. Недавно основная часть контента была переработана в проект под названием «Python-Core-50-Courses». Эта часть контента была переписана в более простом и популярном виде и снабжена видеообъяснениями. посмотрите на этот новый склад. Если домашние пользователи не спешат получить доступ к GitHub, они могут подписаться на мою учетную запись Zhihu Python-Jack . Приведенная выше колонка «Изучение Python с нуля» больше подходит для новичков. Другие колонки, такие как «Обсуждение данных и статистическое мышление», «На основе Python». «Анализ данных» и так далее также постоянно создаются и обновляются. Приглашаем всех обратить внимание, поставить лайк и оставить комментарий.
Друзья, которые хотят получить обучающие видео, могут отсканировать QR-код ниже, чтобы войти в мини-программу WeChat и узнать, есть ли подходящий для вас контент. Контент машинного обучения, о котором все думают, можно найти в мини-программе, которую мы с коллегами записали для всех.
Если в процессе обучения у вас возникнут какие-либо трудные проблемы или вам понадобятся соответствующие учебные ресурсы, вы можете присоединиться к следующей группе общения QQ. Вы можете присоединиться к одной из трех групп. Пожалуйста, не присоединяйтесь к группе повторно и не размещайте сообщения в ней. Реклама и другой порнографический, вульгарный или деликатный контент. Если вам не хватает самодисциплины и вам нужно платить за обучение, вы можете добавить мой частный чат WeChat (jackfrued) и указать свое имя и потребности. Я предоставлю вам некоторые рекомендации по планам обучения и планированию карьеры .
Поддерживающие видео постоянно обновляются на Douyin и Bilibili. Заинтересованные друзья могут следить за моей учетной записью Douyin или Bilibili. Я только недавно открыл свою учетную запись. Надеюсь, вы меня очень поддержите.
Раздел «Машинное обучение и глубокое обучение», обновление которого все призывают, остановился по личным и корпоративным причинам. Сопутствующий контент будет обновлен в ближайшем будущем. Благодарим вас за постоянную поддержку и понимание.
Проще говоря, Python — это «элегантный», «понятный» и «простой» язык программирования.
Низкая кривая обучения, даже непрофессионалы могут начать работу
Система с открытым исходным кодом и сильной экосистемой
Интерпретируемый язык, идеальная мобильность платформы
Динамически типизированный язык, поддерживающий объектно-ориентированное и функциональное программирование.
Код высоко стандартизирован и читаем.
Python полезен в следующих областях.
Бэкэнд-разработка — Python/Java/Go/PHP
DevOps — Python/Shell/Ruby
Сбор данных — Python/C++/Java
Количественный трейдинг — Python/C++/R
Наука о данных — Python/R/Julia/Matlab
Машинное обучение — Python/R/C++/Джулия
Автоматизированное тестирование — Python/Shell
У разработчика Python есть множество областей трудоустройства, которые можно выбирать в зависимости от личных предпочтений и карьерных планов.
Инженер-разработчик серверной части Python (сервер, облачная платформа, интерфейс данных)
Инженер по эксплуатации и техническому обслуживанию Python (автоматизированная эксплуатация и обслуживание, SRE, DevOps)
Аналитик данных Python (анализ данных, бизнес-аналитика, цифровые операции)
Инженер по интеллектуальному анализу данных Python (машинное обучение, глубокое обучение, эксперт по алгоритмам)
Инженер-сканер Python
Инженер по тестированию Python (автоматическое тестирование, разработка тестов)
Примечание . В настоящее время анализ данных и интеллектуальный анализ данных являются очень популярными направлениями , поскольку как интернет-индустрия, так и традиционные отрасли накопили большой объем данных, и все сферы жизни нуждаются в аналитиках данных, чтобы получать больше бизнес-идей из существующих данных, тем самым создавая ценность. обеспечение информационной поддержки для принятия корпоративных решений, что представляет собой так называемое принятие решений на основе данных.
Несколько советов для новичков:
Сделайте английский своим рабочим языком.
Практика делает совершенным.
Весь опыт приходит от ошибок.
Не будьте одной из пиявок.
Либо выдающийся, либо аут (либо выдающийся, либо аут).
Введение в Python – История Python/Преимущества и недостатки Python/Области применения Python
Создайте среду программирования — среда Windows/среда Linux/среда MacOS.
Запуск программы Python из терминала – Привет, мир/функция print
/запуск программы
Использование IDLE — интерактивная среда (REPL) / Написание нескольких строк кода / Запуск программы / Выход из IDLE
Комментарии - роль комментариев/однострочных комментариев/многострочных комментариев.
Программы и база - Инструкции и программы/Машина фон Неймана/Двоичные и десятичные/Восьмеричные и шестнадцатеричные
Переменные и типы - именование переменных/использование переменных/функции input
/проверка типов переменных/преобразование типов
Числа и строки — целые числа/числа с плавающей запятой/комплексные числа/строки/основные строковые операции/кодировка символов.
Операторы — математические операторы/операторы присваивания/операторы сравнения/логические операторы/операторы тождества/приоритет операторов.
Случай применения: преобразование температуры по Фаренгейту в температуру по Цельсию / Введите радиус круга, чтобы вычислить окружность и площадь / Введите год, чтобы определить, является ли он високосным.
Сценарии применения ветвей структуры – условия/отступы/блоки кода/блок-схемы
оператор if – простая структура if
/ if
– else
/ if
– elif
– структура else
/вложенная if
Случаи применения - Аутентификация пользователя/Обмен британскими и метрическими единицами измерения/Бросание кубиков, чтобы решить, что делать/Преобразование процентилей в систему оценок/Оценка кусочных функций/Ввод длин трех сторон и вычисление периметра и площади, если треугольник может быть сформированный
Сценарии применения циклических структур – условия/отступы/блоки кода/блок-схемы
Цикл while — базовая структура/оператор break
/оператор continue
цикл for — базовая структура/тип range
/структура ветвления в цикле/вложенный цикл/раннее завершение программы
Случаи применения - Суммирование 1~100 / Определение простых чисел / Игры с угадыванием чисел / Печать девяноста девяти таблиц / Печать шаблонов треугольников / Обезьяна ест персики / Сотни монет и сотни цыплят
Классические случаи: Число Нарцисса/Сто денег и сто цыплят/Азартная игра в кости
Практические вопросы: последовательность Фибоначчи/совершенные числа/простые числа.
Роль функций — неприятный запах кода/инкапсуляция функциональных модулей с функциями
Определить функцию – ключевое слово def
/имя функции/список параметров/оператор return
/вызов пользовательской функции
Вызов функций — встроенные функции Python/импорт модулей и функций
Параметры функции — параметры по умолчанию/переменные параметры/параметры ключевого слова/параметры именованного ключевого слова
Возвращаемое значение функции – нет возвращаемого значения/возврат одного значения/возврат нескольких значений
Проблемы с областью — локальная область/вложенная область/глобальная область/встроенная область/ключевые слова, связанные с областью действия.
Использование функций управления модулями — концепция модулей/использование пользовательских функций управления модулями/что происходит при конфликте имен (один и тот же модуль и разные модули)
Использование строк – расчет длины/операция с индексами/нарезка/общие методы
Базовое использование списков — определение списков/использование следующей таблицы для доступа к элементам/индекс за пределами границ/добавление элементов/удаление элементов/изменение элементов/срез/циклическое перемещение.
Общие операции со списками — соединение/копирование (копирование элементов и копирование массивов)/длина/сортировка/обратный поиск/поиск.
Генерировать списки — используйте range
для создания списков чисел/генерации выражений/генераторов.
Использование кортежей — определение кортежей/использование значений в кортежах/изменение переменных кортежа/преобразования кортежей и списков.
Базовое использование наборов — разница между наборами и списками/создание набора/добавление элементов/удаление элементов/очистка
Общие операции над множествами — пересечение/объединение/разность/симметричная разность/подмножество/надмножество.
Базовое использование словаря – характеристики словаря/создать словарь/добавить элемент/удалить элемент/получить значение/очистить
Общие словарные операции - метод keys
/метод values
/метод items
/метод setdefault
Базовые упражнения – Эффект выделения/Нахождение наибольшего элемента в списке/Средний балл статистических тестов/Последовательность Фибоначчи/Треугольник Ян Хуэй
Комплексный кейс - выбор номера двойного цветного шара/крестики-нолики
Классы и объекты - Что такое класс/Что такое объект/Другие связанные концепции объектно-ориентированного подхода
Определить класс – базовая структура/свойства и методы/конструктор/деструктор/метод __str__
Использование объектов — создание объектов/отправка сообщений объектам
Четыре столпа объектно-ориентированного подхода: абстракция/инкапсуляция/наследование/полиморфизм.
Базовые упражнения – определение класса ученика/определение класса часов/определение графического класса/определение класса автомобиля
Свойства — свойства класса/свойства экземпляра/способы доступа к свойствам/модификаторы свойств/удаители свойств/использование __slots__
Методы в классах — методы экземпляра/методы класса/статические методы.
Перегрузка оператора — __add__
/ __sub__
/ __or__
/ __getitem__
/ __setitem__
/ __len__
/ __gt__
/ __lt__
/ __le__
/ __ge__
/ __ge__ / __eq__
/ __ne__
__contains__
__repr__
Связь между классами (объектами) – ассоциация/наследование/зависимость
Наследование и полиморфизм - что такое наследование/синтаксис наследования/вызов метода родительского класса/переопределение метода/определение типа/множественное наследование/ромбовидное наследование (ромбовидное наследование) и алгоритм C3
Комплексная система расчета зарплаты/автоматическая система скидок на книги/индивидуальная категория баллов
Разрабатывайте программы с графическим интерфейсом с помощью tkinter
Разрабатывайте игровые приложения с использованием сторонней библиотеки pygame
.
Игра «Большой мяч съедает маленький мяч».
Читать файл - прочитать весь файл/читать построчно/путь к файлу
Записать файл – перезаписать/добавить/текстовый файл/двоичный файл
Обработка исключений – важность механизма исключений/ try
– except
блока кода/блока кода else
/ finally
блока кода/встроенного типа исключения/стека исключений/оператор raise
Сохранение данных – обзор файла CSV/Применение модуля csv
/Формат данных JSON/Применение модуля json
Расширенные операции со строками — escape-символы/исходные строки/многострочные строки/ in
операторах и not in
/методы is_xxx
/методы join
и split
/методы, связанные с strip
/модуль pyperclip
/неизменяемые строки и переменные строки/использование StringIO
Введение в регулярные выражения - роль регулярных выражений/метасимволов/экранирования/квантификаторов/группировки/утверждений нулевой ширины/жадного сопоставления и ленивого сопоставления lazy/использование модуля re
для реализации операций регулярных выражений (сопоставление, поиск, замена, захват)
Использование регулярных выражений - модуль re
/функция compile
/метод group
и groups
/метод match
/метод search
/метод findall
и finditer
/метод sub
и subn
/метод split
Случай приложения. Использование регулярных выражений для проверки входных строк.
Понятия о процессах и потоках - Что такое процесс / Что такое поток / Сценарии многопоточных приложений
Использование процессов — функция fork
/ multiprocessing
модуль/пул процессов/межпроцессное взаимодействие
Использование потоков - модуль threading
/класс Thread
/класс RLock
/класс Condition
/пул потоков
Основы компьютерных сетей — история развития компьютерных сетей/модель «TCP-IP»/IP-адрес/порт/протокол/другие связанные понятия
Режим сетевого приложения – режим «Клиент-Сервер»/режим «Браузер-Сервер»
Доступ к сетевым ресурсам на основе протокола HTTP — обзор сетевого API/URL-адрес доступа/ requests
сторонней библиотеки/анализ данных формата JSON
Сетевое программирование на Python – концепция сокетов/модуль socket
/функция socket
/создание TCP-сервера/создание TCP-клиента/создание UDP-сервера/создание UDP-клиента
Электронная почта — SMTP/POP3/IMAP/модуль smtplib
/модуль poplib
/модуль imaplib
SMS-сервис — вызов шлюза SMS-сервиса
Используйте Pillow для обработки изображений: чтение и письмо изображений/синтез изображений/геометрическое преобразование/преобразование цветов/эффекты фильтров.
Чтение и написание документов Word - обработка текстового контента/абзацев/верхних и нижних колонтитулов/обработка стилей
Чтение и запись файлов Excel — xlrd
/ xlwt
/ openpyxl
Общие структуры данных
Расширенное использование функций - «Первоклассные граждане» / Функции высшего порядка / Лямбда-функции / Область видимости и замыкания / Декораторы
Продвинутые знания объектно-ориентированного подхода - «Три столпа»/Взаимоотношения между классами/Сборка мусора/Магические свойства и методы/Смешивание/Метакласс/Принципы объектно-ориентированного проектирования/Шаблон проектирования GoF
Итераторы и генераторы — связанные магические методы/Два способа создания генератора/
Параллельное и асинхронное программирование – многопоточность/многопроцессность/асинхронный ввод-вывод/ async
и awai
Используйте HTML-теги для переноса содержимого страницы.
Рендеринг страницы с помощью CSS
Обработка интерактивного поведения с помощью JavaScript
Начало работы с jQuery и его улучшение
Начало работы с Vue.js
Использование элемента
Использование бутстрапа
История развития операционной системы и обзор Linux
Основные команды Linux
Утилиты в Linux
файловая система Linux
Приложение-редактор Vim
Переменные среды и программирование оболочки
Установка программного обеспечения и настройка сервиса
Доступ к сети и управление ею
Другой похожий контент
Обзор реляционных баз данных
Введение в MySQL
УстановитьMySQL
Основные команды MySQL
Построить базу данных и таблицу
Удаление и изменение таблиц
операция вставки
удалить операцию
операция обновления
Проекции и псевдонимы
Фильтровать данные
Обработка нулевых значений
Удалить дубликаты
сортировать
агрегатная функция
Вложенные запросы
Группа
объединение таблиц
Декартово произведение
внутреннее соединение
естественная связь
внешнее соединение
оконная функция
Определить окно
функция ранжирования
функция доступа
Создать пользователя
предоставлять разрешения
Отозвать разрешения
Тип JSON
оконная функция
обычное табличное выражение
вид
Сценарии использования
Создать представление
Ограничения использования
функция
встроенные функции
Пользовательская функция (UDF)
процесс
Процесс создания
Процесс вызова
план выполнения
Принцип индексации
Создать индекс
Обычный индекс
уникальный индекс
индекс префикса
составной индекс
На что следует обратить внимание
Установите сторонние библиотеки
Создать соединение
Получить курсор
Выполнить оператор SQL
Получить данные с помощью курсора
Подтверждение и откат транзакции
Разъединение
Написание ETL-скриптов
Экосистема Hadoop
Обзор улья
Подготовка
тип данных
DDL-операции
DML-операции
Запрос данных
Механизм работы веб-приложения
HTTP-запросы и ответы
Обзор фреймворка Django
Начните быстро за 5 минут
Конфигурация реляционной базы данных
Используйте ORM для выполнения операций CRUD над моделью.
Использование управленческого опыта
Лучшие практики модели Django
Справочник по определению модели
Загрузка статических ресурсов
Обзор Аякса
Реализовать функцию голосования с помощью Ajax
Внедрить отслеживание пользователей
Связь между файлами cookie и сеансами
Поддержка сессий фреймворком Django
Операции чтения и записи файлов cookie в функциях просмотра
Измените заголовки ответов через HttpResponse
Используйте StreamingHttpResponse
для обработки больших файлов.
Используйте xlwt
для создания отчетов Excel
Используйте reportlab
для создания отчетов в формате PDF
Используйте ECharts для создания внешних диаграмм.
Журнал конфигурации
Настроить панель инструментов Django-Debug
Оптимизировать код ORM
Что такое промежуточное программное обеспечение
Встроенное промежуточное программное обеспечение платформы Django
Пользовательское промежуточное ПО и сценарии его применения
Возвращать данные в формате JSON
Отрисуйте страницу с помощью Vue.js
Обзор REST
Начало работы с библиотекой DRF
Раздельная разработка front-end и back-end
Применение JWT
Используйте CBV
Пейджинг данных
Фильтрация данных
Первый закон оптимизации сайта
Использование Redis для предоставления услуг кэширования в проектах Django.
Чтение и запись кеша в функции просмотра
Использование декораторов для реализации кэширования страниц
Предоставлять услуги кэширования для интерфейсов данных.
Управление формой загрузки файлов и предварительный просмотр файла изображения
Как обрабатывать загруженные файлы на стороне сервера
Второй закон оптимизации сайта
Настройка службы очереди сообщений
Используйте Celery для реализации асинхронизации задач в проекте.
Используйте Celery для реализации запланированных задач в проекте
Модульное тестирование в Python
Поддержка модульного тестирования в платформе Django.
Используйте систему контроля версий
Настройка и использование uWSGI
Динамическое и статическое разделение и конфигурация Nginx
Настроить HTTPS
Настройка разрешения доменного имени
Понятие веб-сканера и области его применения
Дискуссия о законности веб-сканеров
Сопутствующие инструменты для разработки веб-сканеров
Состав программы-сканера
Используйте стороннюю библиотеку requests
для реализации сбора данных.
Три способа парсинга страниц
Анализ регулярных выражений
XPath-анализ
Разбор CSS-селектора
многопоточность
многопроцессный
Асинхронный ввод-вывод
Установить селен
Загрузить страницу
Находите элементы и моделируйте поведение пользователя
Неявное ожидание и явное ожидание
Выполнить код JavaScript
Selenium антисканирующий кряк
Настройте безголовый браузер
Scrapy основные компоненты
Scrapy рабочий процесс
Установите Scrapy и создайте проект
Написать программу-паук
Написание промежуточного программного обеспечения и конвейерных программ.
Файл конфигурации Scrapy
Обязанности аналитика данных
Набор навыков аналитика данных
Библиотеки, связанные с анализом данных
Установите и используйте Анаконду
команды, связанные с кондой
Установите и используйте jupyter-lab
Установить и запустить
Используйте советы
Создать объект массива
Свойства объекта массива
Индексные операции над объектами массива
Обычный индекс
необычный индекс
логический индекс
индекс среза
Кейс: Использование массивов для обработки изображений
Связанные методы объектов массива
Получите описательную статистику
Другие связанные методы
Операции с массивами
Массивные и скалярные операции
Массивы и операции с массивами
Универсальная унарная функция
общая двоичная функция
механизм трансляции
Общие функции Numpy
вектор
Определитель
матрица
полиномиальный
Создать объект Series
Операции с объектами Series
Свойства и методы объектов Series
Создать объект DataFrame
Свойства и методы объекта DataFrame
Чтение и запись данных в DataFrame
Изменение данных
Сращивание данных
Объединение данных
Очистка данных
Отсутствующие значения
Повторяющиеся значения
Выбросы
предварительная обработка
Сводные данные
Получите описательную статистику
Сортировка и значения заголовков
Групповая агрегация
Сводные таблицы и кросс-таблицы
Представление данных
Посчитайте сравнение по годам
расчет окна
Определение релевантности
Использование индекса
индекс диапазона
Индекс категории
многоуровневый индекс
индекс интервала
индекс даты и времени
Установите и импортируйте matplotlib
Создать холст
Создайте систему координат
Рисовать диаграммы
Линейный график
График рассеяния
гистограмма
круговая диаграмма
Гистограмма
коробочный сюжет
Показать и сохранить диаграммы
Расширенные диаграммы
пузырьковая диаграмма
диаграмма областей
радиолокационная карта
роза диаграмма
3D-диаграммы
Сиборн
Пайчартс
модель программного процесса
Бэклог продукта (пользовательские истории, прототипы продуктов).
Совещания по планированию (оценка и составление бюджета).
Ежедневная разработка (стендапы, техника Помидора, парное программирование, сначала тестирование, рефакторинг кода...).
Исправить ошибки (описание проблемы, этапы воспроизведения, тестировщики, исполнители).
Релизная версия.
Обзорная встреча (демонстрация, пользователи должны принять участие).
Ретроспективная встреча (подведение итогов текущего итерационного цикла).
Люди и взаимодействие над процессами и инструментами
Рабочее программное обеспечение с подробной документацией
Сотрудничество с клиентами имеет приоритет над переговорами по контракту
Реагировать на изменения лучше, чем следовать плану
Технико-экономическое обоснование (независимо от того, проводить исследования или нет) и подготовить «Отчет об технико-экономическом обосновании».
Анализ требований (исследование, что делать), вывод «Требования» и схемы прототипа интерфейса продукта.
Эскизное и детальное проектирование, выходные диаграммы концептуальных моделей (ER-диаграммы), диаграммы физической модели, диаграммы классов, диаграммы последовательности и т. д.
Кодирование/Тестирование.
Выход в Интернет/обслуживание.
Классическая модель процесса (водопадная модель)
Самый большой недостаток каскадной модели заключается в том, что она не может учесть изменения спроса. Продукт невозможно увидеть до тех пор, пока не будет завершен весь процесс, что приводит к низкому моральному духу команды.
Гибкая разработка (Scrum) - владелец продукта, Scrum Master, разработчики - Sprint
Дополнение: Манифест гибкой разработки программного обеспечения
Роль: Владелец продукта (человек, который решает, что делать, и может принимать решения по требованиям), руководитель группы (решает различные проблемы, фокусируется на том, как работать лучше, и защищает внешнее влияние на команду разработчиков), команда разработчиков (руководитель проекта, Конкретно разработчики и тестировщики).
Подготовка: экономическое обоснование и финансирование, контракты, видение, первоначальные требования к продукту, первоначальный план выпуска, приобретение долей участия, построение команды.
Agile-команды обычно состоят из 8-10 человек.
Оценка рабочей нагрузки: Определите количество задач по разработке, включая прототипы, дизайн логотипа, дизайн пользовательского интерфейса, фронтенд-разработку и т. д., и постарайтесь разложить каждую работу на минимальный объем задач. Минимальный стандарт объема задач заключается в том, что рабочее время не может превышать двух дней. , а затем оцените общее время проекта . Размещайте каждую задачу на канбан-доске, которая разделена на три части: to do (нужно выполнить), in Progress (в процессе) и Done (завершено).
Формирование команды проекта
Комментариев к коду слишком мало или они отсутствуют.
Код нарушает лучшие практики языка
Программирование против шаблонов (спагетти-код, программирование копирования-вставки, программирование эго и т. д.)
Состав команды и роли
Примечание. Спасибо г-же Фу Сянин за помощь в составлении следующей красивой организационной схемы компании.
Спецификации программирования и обзор кода ( flake8
, pylint
)
Некоторые «соглашения» в Python (см. «Соглашения Python: как писать код на Python»)
Причины, влияющие на читаемость кода:
Знакомство с инструментами командной разработки
Пожалуйста, обратитесь к разделу «Проблемы и решения при разработке командных проектов».
Контроль версий: Git, Mercury.
Управление дефектами: Gitlab, Redmine
Гибкие инструменты замкнутого цикла: ZenTao, JIRA.
Непрерывная интеграция: Дженкинс, Travis-CI
Настройка области темы
CMS (клиент): веб-сайт агрегирования новостей, сообщество вопросов и ответов/обмена, веб-сайт обзоров фильмов/книг и т. д.
MIS (сторона пользователя + сторона управления): KMS, система оценки KPI, HRS, CRM-система, система цепочки поставок, система управления складом и т. д.
Серверная часть приложения (терминал управления + интерфейс данных): операции с подержанными товарами, газеты и журналы, нишевая электронная коммерция, новости и информация, путешествия, социальные сети, чтение и т. д.
Другие типы: Собственный отраслевой опыт и опыт работы, бизнес легко понять и контролировать.
Понимание требований, разделение модулей и распределение задач
Понимание требований: мозговой штурм и анализ конкурентной продукции.
Разделение модулей: нарисуйте интеллектуальную карту (XMind). Каждый модуль представляет собой узел ветвления, а каждая конкретная функция — это узел-лист (выраженный с помощью глаголов). Необходимо гарантировать, что каждый узел-лист не может регенерировать новые узлы и определять каждый лист. Важность, приоритет и загруженность узлов.
Распределение задач: руководитель проекта распределяет задачи между каждым членом команды на основе вышеуказанных показателей.
Разработка графика проекта (обновляется ежедневно)
модуль | Функция | персонал | состояние | Заканчивать | рабочее время | План начинается | Фактический старт | План заканчивается | фактический конец | Примечание |
---|---|---|---|---|---|---|---|---|---|---|
Комментарий | Добавить комментарий | Ван Дачуи | непрерывный | 50% | 4 | 7 августа 2018 г. | 7 августа 2018 г. | |||
Удалить комментарий | Ван Дачуй | ждать | 0% | 2 | 7 августа 2018 г. | 7 августа 2018 г. | ||||
Посмотреть комментарии | Бай Юаньфан | непрерывный | 20% | 4 | 7 августа 2018 г. | 7 августа 2018 г. | Требуется проверка кода | |||
Комментировать голосование | Бай Юаньфан | ждать | 0% | 4 | 8 августа 2018 г. | 8 августа 2018 г. |
ООАД и проектирование баз данных
Диаграмма классов для UML (унифицированного языка моделирования)
Создайте таблицу с помощью модели (прямое проектирование). Например, в проекте Django вы можете создать двумерную таблицу с помощью следующей команды.
Приложение makemigrations Python Manage.py миграция python Manage.py
Используйте PowerDesigner для рисования диаграмм физической модели.
Создайте модель (обратное проектирование) с помощью таблицы данных. Например, в проекте Django вы можете создать модель с помощью следующей команды.
python Manage.py Inspectdb > app/models.py
Введение в Докер
Установить Докер
Используйте Docker для создания контейнеров (Nginx, MySQL, Redis, Gitlab, Jenkins)
Создайте образ Docker (написание Dockerfile и соответствующие инструкции)
Оркестровка контейнеров (Docker-compose)
Управление кластером (Kubernetes)
основные принципы
движок InnoDB
Использование индекса и меры предосторожности
раздел данных
SQL-оптимизация
Оптимизация конфигурации
Оптимизация архитектуры
принципы проектирования
ключевые вопросы
Другие вопросы
Написание документов
Конфигурация базы данных (несколько баз данных, репликация «главный-подчиненный», маршрутизация базы данных)
Конфигурация кэша (кэш раздела, настройки ключей, настройки тайм-аута, репликация главный-подчиненный, восстановление после сбоя (Sentinel))
Конфигурация журнала
Профилирование и отладка (Django-Debug-ToolBar)
Полезные модули Python (вычисление даты, обработка изображений, шифрование данных, сторонний API)
RESTful архитектура
Понимать архитектуру RESTful
Рекомендации по проектированию RESTful API
Лучшие практики RESTful API
Написание документации по интерфейсу API
РЭП2
ЯПИ
Применение django-REST-фреймворка
Используйте кеширование, чтобы снизить нагрузку на базу данных — Redis
Используйте очереди сообщений для разделения и ограничения пиков — Celery + RabbitMQ
Тип теста
Написание модульных тестов ( unittest
, pytest
, nose2
, tox
, ddt
,...)
Тестовое покрытие ( coverage
)
Подготовка перед развертыванием
Ключевые настройки (SECRET_KEY/DEBUG/ALLOWED_HOSTS/кеш/база данных)
HTTPS/CSRF_COOKIE_SECUR/SESSION_COOKIE_SECURE
Конфигурация, связанная с журналом
Обзор распространенных команд Linux
Установка и настройка распространенных служб Linux
Использование uWSGI/Gunicorn и Nginx.
Для простых приложений, не требующих большой настройки, Gunicorn является хорошим выбором. Кривая обучения uWSGI намного более крутая, чем Gunicorn, и параметры Gunicorn по умолчанию уже можно адаптировать для большинства приложений.
uWSGI поддерживает гетерогенное развертывание.
Поскольку сам Nginx поддерживает uWSGI, Nginx и uWSGI обычно развертываются вместе в Интернете, а uWSGI представляет собой полнофункциональное и гибко настраиваемое промежуточное программное обеспечение WSGI.
С точки зрения производительности Gunicorn и uWSGI работают одинаково хорошо.
Сравнение Gunicorn и uWSGI
Развертывание тестовой и производственной среды с использованием технологии виртуализации (Docker).
Использование АБ
Использование SQLslap
Использование системного бенчмарка
Автоматизированное тестирование с использованием Shell и Python
Автоматизированное тестирование с использованием Selenium
Селен IDE
Селен ВебДрайвер
Селеновый пульт дистанционного управления
Введение в инструмент тестирования Robot Framework
Бизнес-модель и требования
Разработка физической модели
Вход для третьих лиц
Прогрев кеша и кеширование запросов
Реализация корзины покупок
Интеграция платежных функций
Флэш-продажи и проблемы перепроданности
Статическое управление ресурсами
Решение для полнотекстового поиска
Настройка базы данных MySQL
Оптимизация производительности веб-сервера
Конфигурация балансировки нагрузки Nginx
Keepalived обеспечивает высокую доступность
Настройка производительности кода
многопоточность
Асинхронизация
Статическая оптимизация доступа к ресурсам
облачное хранилище
CDN
основы компьютера
Основы Python
Связанные с веб-фреймворком
Проблемы, связанные с рептилиями
анализ данных
Связанные с проектом