Дополнения

Всегда пытаюсь сделать некоторые успехи в прошлом году краткое резюме, но всегда найти свои собственные причины , чтобы уклоняться. С одной стороны , чувствовать себя несколько незначительных эти вещи, а не системы, с другой стороны , они имеют в рамках подготовки к аспирантуре. Но хотелось бы подвести итог этой идеи было сердце дайвингом, время от времени появляются, в конечном счете , «впустую» время , чтобы подвести итоги уик - энда этот блог.
Это название блога под названием добавки причина.

Blogger является младшим программной инженерии студентов, почти за год до обучения веб-разработки на Python, Боуэн в основном некоторые из своих собственных проблем, с которыми сталкиваются, восприятия и понимания, а теперь еще раз стоял в вилке жизни.

Боуэн включают в себя следующее:

  • Язык и рамки (Python + Django)
  • Проблемы, возникающие в базе данных
  • проблемы развертывания серверов столкнулись
  • Планируемые проектные требования
  • Для команды разработчиков программного обеспечения, чтобы понять,
  • прогноз

Во-первых, язык и рамки

Около 17 лет поздно, я знаю почти уважаемая толпу Python, и половина несовершенного раствора начала обучения. А теперь все больше и больше колледжей и университеты используют его в качестве языка программирования первокурсника вводного.

1.1 Python

Пояснительная язык, по своей сути медленно этикетке, прикрепленной эффективность, но это объяснение также является промежуточным продуктом, Python два шага в интерпретации источника:

  • Первый шаг: исходный код в байт-код
  • Шаг: преобразование байт-кода в машинный код

Уделено внимание следует отметить, что, когда файл питон скомпилирован, существует взаимосвязь между импортируемым файлом, он будет генерировать папку __pyc__. Файл Pyc преобразуется интерпретатором Python байт-код исходного модуля. (Pyc, Py представители pychon, с скомпилирован смыслом, Pyc который компилируется питон файлов) Когда наша программа не изменяется, то в следующий раз, когда вы запускаете программу, вы можете пропустить процесс от источника к байткоду, Pyc файлы загружены непосредственно. Целью этого является, чтобы работать быстрее. Хотите повысить эффективность разработки, можно сделать некоторые Компромиссы эффективность исполнения.

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

Это подчеркивает стандарты кодирования, важность документа и комментарии.
+ = + Структура данных программной документации программного обеспечения = данные + алгоритм + данные + документ

После того, как обеспечить, чтобы объект, переменные, указывающий на него от одного объекта к другому объекту: Эти переменный может указывать на каждый другой объект (в Python, все объекты «свободно Python», сказали)? Исходный объект должен быть бесполезным, то объем памяти должен быть освобожден. Чтобы решить эту проблему, Python, используя метод подсчета ссылок в качестве коллекции сборщика по умолчанию, поддержание целевого объекта эталонных полей для каждой записи идентификационного номера, после того, как ссылка на объект счетчик равен 0, объект был немедленно восстановлен, объект занимает пространство памяти Он был освобожден. Но для поддержания такого поля, каждый объект, но и занимают дополнительное место в памяти и не может решить проблему циклических ссылок, поэтому введение метки Python - зачистка GC и вспомнить поколений двух механизмов.

Если вы хотите узнать, «свободно Python» , безусловно , может помочь открыть новые двери Python.

1.2 Стандарты кодирования

Хотя PE8 правила не говорят , нет вкладки предложения, но использование четырех пространств, так как число различных редакторов могут определить вкладку противоречиво. Даже местный код записи , когда нет никаких проблем, никаких проблем не избежать других людей , когда другие редактора, в конце концов, не синтаксиса Python не брекетов Этого блока кода конфигурации, отступа полагаться на своем собственном , чем отступ другие гораздо более необходимо, но все - таки избавиться от привычки использовать только вкладку, вредные привычки могут занять неделю, но он провести несколько раз , чтобы избавиться от этих усилий. Названы привычки несовместимы, нет никаких разумных комментариев, долгое время, я не читал свой собственный код.
Кажется, я помню , где видел так много слов, грубо сказать

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

1,3 Джанго

Люди постоянно учиться, языком и рамок в эволюционирует, чтобы удовлетворить спрос, неизбежно возникает противоречие между новой версией и старой версией. Разработка программного обеспечения в верхней говорят совместимы нижней, что новая версия будет совместима с более старыми версиями. Но это не всегда так, и появились проблемы несовместимости Django2.x при использовании xadmin в качестве бэк-офиса системы. Оригинальный xadmin не основан Django1.x делать, и оригинальный автор больше не поддерживается.

Передний конец заднего конца всегда будет повторяться данные аутентификации запроса передачи, такие как форма представляются, передний конец ввода данных помечать атрибуты делают проверку, аутентификацию бэкэнда сделана вручную , чтобы получить данные, когда извлеченного ток базы данных соответствия информации базы данных аутентификации модель будет делать проверку до матча три проверки выглядит немного излишней, но не может предотвратить кто - то может использовать форму строки будет входить в исполняемый код сценария или украсть важную информацию на атакующем компьютере (SQL Injection и CSRF) ,
Вы не можете быть более осторожными.

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

Во-вторых, база данных

Просто MySQL ......

Проблема 2,1 мусора

Я связывался наибольшее количество данных составляет один миллион данных (поле), лаборатория школы брат у гадов, ползающих в последние годы, информация о приеме колледжа оценки для всех различных институтов и колледжей, получить наши руки на данных когда две таблицы, две таблицы, я хочу сделать слияние, результаты компьютера под управлением в течение нескольких часов не более чем, в конце концов сдались. Существует также проблема, которая длилась два дня, чтобы решить, из школьного брата MongoDB таблиц экспорта базы данных, а затем импортировать мой локальный MySQL, обе базы данных по умолчанию UTF-8, но я здесь, чтобы увидеть китайские данные импорта данных искаженных после, также считается MySQL UTF-8 фактически три символа вместо четырех символов, но это на самом деле не искаженные причины, школа брат позже сказала мне, что для того, чтобы проверить, является ли данные полным и точным экспортом, после таблицы экспорта данных или просмотреть немного с WPS офисом, чтобы открыть, на самом деле, это проблема, китайское программное обеспечение офиса будет по умолчанию GBK или GB2312 китайского кодирования символов, который китайские символы в кодировке UTF-8> GBK или gb2313, не проблема, но GBK или gb2313-> UTF-8 будет очень вероятно, мусора проблема.

2.2 Структура таблицы Design

Небольшой дизайн сайт структура таблицы контакта сравнительно просто, обычно используется реальные данные листа может быть до десятка, делать ли связь между таблицей и структурой таблицы, поле не является пустым, свойства по умолчанию, установите первичный ключ таблицы базы данных на самом деле проблема разработка и тестирование на местах подвергаются более очевидными. Большую часть времени для реализации и тестирования возможностей будут добавлены для удаления дубликатов данных, внешний ключ для того, чтобы поддерживать ссылочную целостность базы данных, исключение будет предложено ошибку, часто попадают непосредственно на всю базу данных удалены, повторно добавить данные вместо каскадные удаления, которые следуют рассматривать как дурную привычку.

  • С одной стороны, структура таблицы данных конструкция является необоснованной
  • С другой стороны, код позади не достаточно для обработки исключений.

Случайно я увидел сестру в школу в лабораторию , чтобы сделать набор внутренней системы служебной аттестации, поскольку она используется государственными органами, судами, он по - прежнему очень высокая функциональная надежность, база данных MySQL, таблица , чтобы узнать , сказал вторник то около дюжины, но не сделал связь между таблицей и таблицей, если вы это сделаете, то более высокие соответствующих требований к проектированию баз данных и опыта обработки, не легко управлять. На самом деле, позже для просмотра информации , найденной в модели базы данных Django внутри _set для этой ассоциации таблицы и таблицы не непосредственно запрос фильтра запроса высокой эффективности. Но если вы делаете связанные структуры таблицы означают , что можно более легко запрашивают с несколькими глубоки, так как ModelSerializer сделать данные запроса глубины в таблице в рамках Джанго отдыха, для анализа конкретных вопросов.
Так что, если я проектирование баз данных:

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

В-третьих, сервер

Начиная с прошлым годом, когда писал к системам управления онлайн, учитель дал пароль учетной записи CentOS сервера, а затем я пошел, первый контакт без операционной системы графических пользовательского интерфейса, полностью невежественной силы, в соответствии с онлайн учебником начал, после того, как вы измените файл конфигурации, сумма не может удаленно подключаться неудобно.
Для того , чтобы исправить дефект, он купил год сервер Али облако, пойти на небольшой Linux, то выглядеть это «следовать за братом птицы учатся Linux», толстый, увидел небольшую часть, на самом деле, многие команды смотрят снова попробовал еще раз, а потом забыть, только некоторые простые команды также помнить , что если принцип, то роль и права и принцип жестких и мягких ссылок в виду.

Развертывание сервера с помощью CentOS + Django + Nginx время развертывания там было много проблем

3,1 стиль не отображается

Интерфейс администратора нашел происходить после развертывания Джанго проекта Али облако (Nginx в качестве веб-сервера) админ не отображает стили. После открытия браузера для просмотра открытия ресурсов CSS, хотя файл в файл проект статических ресурсов, но при статическом каталоге без соответствующих CSS и JS ресурсов, чтобы попытаться собрать стиль в пути проекта, в производство в сфере местного развития и проектах, Джанго проекта для управления статические файлы в обоих государствах не то же самое, вы должны указать статический путь к файлу развертывания на линии.

отказы модификации 3,2 код

После развертывания Джанго проекта Али облака, пагода с помощью панели управления, чтобы изменить исходный код проекта, или использовать непосредственно после терминала модификации, изменений и перезапустить Nginx uwsgi недействительными. Когда локальное окружение, непосредственно изменять, а затем вы можете перезапустить эффект runserver, более удобный, но к серверу по этой проблеме.

  • С одной стороны: Если вы измените исходный код непосредственно на сервере, потому что сам отступ Python строгих требований, то это вызовет ошибку исключения.
  • С другой стороны: В местное время, использование Python manage.py runserver для запуска сервера. Это относится только к использованию тестовой среды. Это каждый раз, когда вы изменяете исходный код, вам необходимо перезапустить Ngnix.

После модификации сервера загрузки исходного кода, введите каталог проекта сервера, просматривать uwsgi процесс, а
затем убить все процессы, а затем перезапустить uwsgi, затем пагоды или прямой приказ перезагрузить Nginx, изменения вступили в силу.

В-четвертых, спрос предусматривается

Есть много особенностей хотели, хотел, чтобы узнать знание (сыр сила) может только временно мель.

  • Как ограничить доступ к анонимным пользователям
  • Как сделать свое собственное управление правами
  • Что происходит с высоким параллелизмом
  • оптимизация
  • обработка информации
  • В сочетании с новой технологией
  • ......

4.1 Управление прав

Хотя Джанго-администратор или xadmin на закулисного управления является совершенным, но если вы сделаете это сами? проект Django для создания супер - администратора может ввести непосредственно в директорию проекта в терминале ,
python manage.py createsuperuser
а затем введите пароль администратора по электронной почте. Суперадминистратор имеет все права, включая добавление генерального менеджера, обычных пользователей. Джанго использует генерируются по умолчанию в таблице, есть о том поле идентификатора пользователя по умолчанию, is_staff, is_superuser, равно 0 или 1 поле соответствует ли общим администраторам и супер - пользователей. В xadmin перерегистрируйте сделать некоторые Admin не дополнения и совершенствуют пользователю войти обратно конторские функции , чтобы вновь сделать таблицу и добавьте IP - операции с использованием управления персоналом, в некоторой степени более высокий уровень безопасности.

4.2 Ограничения доступа

Использование IP-адрес пользователя, особенно один анонимные ограничений доступа пользователей, которые имеют специальное название под названием в рамках Джанго Rest - дроссельный (ограничения доступа). Это, как правило много раз пользователь запрашивает страницу, или нажмите на ссылку, когда, перед тем несколько кликов не проблема, но после того, как несколько раз один раз подряд, будет ограничен доступ, только после того, как определенный лимит времени будет снят, нормальный доступ. Хочет, чтобы ограничить анонимные пользователи должны определить, что есть что запрос выдаются анонимным пользователем, IP-адрес является уникальным идентификатором. Когда пользователь в момент первого запроса передачи, кэш может быть сгенерирован в словаре, словарь ключей однозначно идентифицирует пользователя и время доступа пользователя, словарь добавляется к каждому запросу для ключа, обеспечивается большинство посещений, время доступа устанавливается не в первый раз, чтобы добавить пары ключ-значение и сравнивает время последнего доступа, чтобы определить, следует ли разрешить доступ.

4,3 параллелизма

Это, кажется, самый дальний вещь от меня, но любопытная вещь всегда думать не имитировать некоторых других случаях нет контакта, по данным Управления по академическим вопросам для школы, если есть 2w + хитов в день, распределенных в первые часы до шести два часа ночи в общей сложности 20 часов, а затем следуют 28 принципов, предполагая, 4 часа, чтобы принять 2W + удара, но и менее, чем в среднем в 1,5 раза в секунду. Откажитесь.

4.4 Оптимизация

Простая оптимизация может быть сделано во многих отношениях.
Я помню , когда отладки кода серверной, а затем обновить браузер не будет влиять, причина должна быть сделана на кэш браузера страницу, откройте консоль отменить кэш. В модифицированной первой странице, что они будут пытаться подчеркнуть , что основную часть CSS стилей в голове, в то время как динамические эффекты JS - файлов в сноске, с тем чтобы предотвратить задержки в сеть для загрузки таблицы стилей пользователя простого стиля , постепенно загружать динамическое содержимое, минимизирует пользователь неудовлетворенность. Количество одновременных запросов файловый браузер будет иметь на линии, при нажатии на странице , когда, если они включены несколько CSS и JS браузера файлов будет частью части запроса, таким образом уменьшая количество статических файлов также гораздо меньше заявления JS может быть встроены непосредственно в HTML - тег , а не создавать новый файл JS.

  • Минимизация подключения к базе данных
  • Джанго механизм кэширования для увеличения
  • Индекс базы данных
  • ......
  • Нам еще предстоит прийти и попробовать

4.5 Обработка данных

В Соединенных Штатах большой супермаркет, памперсы и пиво положить вместе , чтобы продать. Это может показаться странным, но памперсы и продажи пива увеличились. Это реальный случай произошел, модель поведения памперсов и пиво представлено: молодой отец после работы часто ходит в супермаркет , чтобы купить детские подгузники, и у них есть некоторые люди также купить пиво для себя. Раскопки от покупательских привычек клиента от «большой рекорда за товар будет покупать другой продукт (вследствие наступления определенных событий вызвал возникновение какого - либо другого события),» этот закон, также известный как ассоциативные правила. Если есть накопление больших объемов данных транзакций хранилища данных клиентов, может осуществляться от добычи хранилища данных данных для извлечения ассоциативных правил , чтобы помочь ритейлерам разрабатывать маркетинговые стратегии, тарифообразования, мерчендайзинга, товар и выбросов на основе покупательского поведения разделение клиентов. Я думаю , что это не представляется возможным Apriori алгоритм, как алгоритм рекомендации продукт поставщика электроэнергии проекта? Теперь вспышка дивиденд Интернет данных.
С историей предыдущего пива и подгузниками, в настоящее время, рядом с супермаркетом кассой стенда поставить некоторые небольшие закуски, жевательную резинку, конфеты, если клиенты покупают товары , которые имеют долю, не изменятся и большой шанс , чтобы забрать некоторые конфеты вместо этого. Но что теперь? Удобство мобильных платежей не было никакой необходимости рассмотреть вопрос о внесении его проблемные вопросы , касающиеся изменения , вызванные супермаркете кассе товар постепенно никто не заботится.

4,6 Новые технологии

Технология интеллектуального анализа данных используются в торговых центрах, в настоящее время очень популярны распознавания образов обратиться к руководству школы?
Общая система управления кампусом , если это управление студентом, управление общежитием, система оценки стипендий и т.д., если лицо оценивается в соответствии с традиционными стипендиями и финансовой помощью, то, безусловно , будет несправедливо, человеческий элемент смешаны в него. Если система управления и сочетание распознавания образов, через дверь общежития, проверяя посещаемость студентов камеры в классе, скорость класса, в качестве опорного коэффициента, путем контроля студентов внутри остатков кампуса карты и ежемесячных расходов оценить ссылку стипендии, чтобы быть более разумными, справедливой и равной основе.

Lab учитель летом прошлого года, когда он и свинофермы, чтобы сделать поведение и распознавать звуки обнаруженных.

Это всего лишь смелое видение, надеюсь закончить этот талант, чтобы приблизиться.

В-пятых, работа в команде

5.1 Связь

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

Если технические знания жесткая сила, умение общаться во всех позициях могут быть повторно использованы с мягкой силой.

Проблема 5,2 Спроса

计划,分析,设计,编码,测试,运行维护。
我真真切切体会到瀑布模型带来的问题,如果是一个人做小型项目,那么它至少给你一种可以参考的开发流程,从开始到结束,都有所依据。但是瀑布模型中前一阶段的成果是后一阶段基础,依赖性太高,如果一个阶段的问题可能会导致整个流程的崩溃,即使每个环节都有反馈,但不适合经常变化的项目。另外在项目开始时候也没有办法保证用户一开始就十分明确地完全表达自己的需求,不再做大程度的需求变更,并且用户只有等到交付阶段才能看到实际软件的运行效果和规模。

5.3 全栈

博主已经大三了,不少同学也都在为自己的下半年的实习焦急和忙碌,也有不少培训公司来捞鱼,培训的技术包括Python全栈开发,和Java企业级开发。可为什么只有Python是全栈?我原本以为是Python做后端跟Java相比较为轻量级,只有小公司才会使用Python+Django作为后端技术栈开发,然而我又错了。前几天博客园认识的朋友说拿到offer到鹅厂当实习生,做python web,就是用Vue.js和Django Restframework。不知道是不是编码阶段前端和后端的开发同时进行,采用前后端分离的模式。

我第一次听说全栈这个词,是一次和老师吃饭的时候老师说的,给我的第一印象是:全栈工程师就是一个人能顶一支队伍。
也有具体定义:一个能处理数据库 、服务器 、系统工程和客户端的所有工作的工程师 。
那么真的是这样吗?对于本科生来说,难度可能大了点。
团队职位分化细化,也就是各司其职,意味着一个人价值的压榨与贬值。而升值更多要靠自我驱动。
软件工程讲究代码的可移植性可复用性,代码映射到软件团队中的个人,比如一个后端如果可以在必要时能去帮助开发前端甚至维护服务器,那么他的竞争优势肯定就凸现出来了
。所以全栈工程师就是可以独立完成一个产品的人 。
我有看过一本关于全栈的书,《Web全栈工程师的自我修养》,作者余果毕业于西电曾是腾讯高级UI工程师。书不厚但每一章都很精彩,以后一定要挤时间把每一章推荐的书单都看一下。

六、拾遗

我还记得去年三月初刚开学的时候毛遂自荐要跟老师进实验室学习,到今年三月初离开实验室,准备考研,不过我也觉得去年一整年是对我来说最有意义的一年。能和比自己厉害许多的学姐学长还有老师能够在一起共事,很幸运。
现在接近六月份,差不多三个月以来每天面对的都是折磨人的高数,英语的长难句和阅读,但我还是经常想念之前在实验室写代码的那种感觉,想实现的功能被自己像积木一样一块一块堆好,即使会出问题,积木本身也会倒,但问题被分析到最后被解决,所收获的快感恐怕不是游戏胜利能够相比的,问题解决留下来的经验也能避免以后重复再犯。还有,我很喜欢那种带上耳机敲代码,仿佛世界都是自己的的感觉。

刚开始准备考研的时候心神不宁也不知道如何下手,好基友告诉我说要未虑胜,先虑败,同时有学姐因为复试差点运气与心仪的学校插肩而过,我有段时间晚上连续梦到自己复试不幸被刷了,潜意识里再想怎么办,但答案都是未知,我也不知道如果这背水一战如果失败了该怎么办。如果继续留在实验室,我现在应该在刷算法题和面试题准备面试实习。

我也不知道我是不是适合考研,但是我现在真的很需要这么在三年的时间来看我想看的书,学我想学的知识技术,还有一个研究生的身份能够帮我接触到我本科接触不到的圈子,认识更多厉害的人。


这是一位本硕华科的大佬在我大一懵懵懂懂的时候对我说的一番话,到现在还印象深刻。

多看一些经典书籍,自己多动手,每个人都有自己的学习方法和研究方向,没有千篇一律的内容。

博客和视频教程都是个人总结,难免会有漏洞,逻辑不连贯的地方,但经过反复改版印刷的书籍基本上不会有这种问题。真的应该多看书,毕竟

以上皆一管之见,如有偏颇不当之处,但请谅解与指出,毕竟博主还是一个大三学生,too young, too naive

рекомендация

отwww.cnblogs.com/welan/p/10926645.html