最新文章无题
面试中的公共问题计算机基础
TCP/IP模型相关问题。
建议阅读阮一峰的《互联网协议入门(一)》和《互联网协议入门(二)》。
HTTP和HTTPS相关问题。
建议阅读阮一峰的《HTTP 协议入门》和《SSL/TLS协议运行机制的概述》。
Linux常用命令和服务。
进程和线程之间的关系。什么时候用多线程?什么时候用多进程?。
关系型数据库相关问题(ACID、事务隔离级别、锁、SQL优化)。
非关系型数据库相关问题(CAP/BASE、应用场景)。
Python基础
开发中用过哪些标准库和三方库。
标准库:sys / os / re / math / random / logging / json / pickle / shelve / socket / datetime / hashlib / configparser / urllib / itertools / collections ...
无题
Python面试题实录
温馨提示:请访问我的另一个项目“Python面试宝典”。
无题
团队项目开发的问题和解决方案个人开发和团队开发这两个词相信对大家来说并不陌生。所谓个人开发就是一个人把控产品的所有内容;而团队开发则是由多个人组团并完成产品的开发。要实施团队开发以下几点是不可或缺的:
对开发过程中的各种事件(例如:谁到什么时间完成了什么事情)进行管理和共享。
在团队内部共享各类工作成果以及新的知识技巧等。
管理工作成果的变更,既要防止成果被破坏,又要保证各个成员利用现有成果并行作业。
证明团队开发出的软件在任何时候都是可以正常运行的。
使用自动化的工作流程,让团队成员能够正确的实施开发、测试和部署。
团队项目开发常见问题团队开发相较于个人开发,容易遇到以下几个方面的问题。
问题1:传统的沟通方式无法确定处理的优先级例如:使用邮件进行沟通可能出现邮件数量太多导致重要的邮件被埋没,无法管理状态,不知道哪些问题已经解决,哪些问题尚未处理,如果用全文检索邮件的方式来查询相关问题效率过于低下。
解决方案:使用缺陷管理工具。
问题2:没有能够用于验证的环境例如:收到项目正式环境中发生的故障报告后,需要还原正式环境需要花费很长的时间。
解决方法:实施持续交付。
问题3:用别名目 ...
无题
Docker容器技术详解Docker是基于Go语言开发的开源应用容器引擎,遵从Apache Licence 2.0协议,可以让开发者打包应用以及应用的依赖包到一个可移植的容器中,然后发布到各种发行版本的Linux系统上。
Docker简介软件开发中最为麻烦的事情可能就是配置环境了。由于用户使用的操作系统具有多样性,即便使用跨平台的开发语言(如Java和Python)都不能保证代码能够在各种平台下都可以正常的运转,而且在不同的环境下我们安装的软件需要依赖的软件包也是不一样的。
那么问题来了,我们安装软件的时候可不可以把软件运行的环境一并安装?我们是不是可以把原始环境一模一样地复制过来呢?
虚拟机(virtual machine)就是带环境安装的一种解决方案,它可以在一种操作系统里面运行另一种操作系统,比如在Windows系统里面运行Linux系统,在macOS上运行Windows,而应用程序对此毫无感知。使用过虚拟机的人都知道,虚拟机用起来跟真实系统一模一样,而对于虚拟机的宿主系统来说,虚拟机就是一个普通文件,不需要了就删掉,对宿主系统或者其他的程序并没有影响。但是虚拟机通常会占用较多的 ...
无题
MySQL性能优化基本原则想要发挥 MySQL 的最佳性能,需要遵循 3 个基本使用原则。
让MySQL回归存储的基本职能:MySQL 数据库只用于数据的存储,不进行数据的复杂计算,不承载业务逻辑,确保存储和计算分离;
查询数据时,尽量单表查询,减少跨库查询和多表关联;
杜绝大事务、大 SQL、大批量、大字段等一系列性能杀手。
大事务:运行步骤较多,涉及的表和字段较多,容易造成资源的争抢,甚至形成死锁。一旦事务回滚,会导致资源占用时间过长。
大 SQL:复杂的SQL意味着过多的表的关联,MySQL 数据库处理关联超过3张表以上的SQL时,占用资源多,性能低下。
大批量:多条SQL一次性执行完成,可以减少一条条执行SQL产生的额外开销,但必须确保进行充分的测试,并且在业务低峰时段或者非业务时段执行。
大字段:blob、text类型的大字段要尽量少用,必须要用时,尽量与主业务表分离,减少对这类字段的检索和更新。
建库建表
必须指定默认存储引擎为 InnoDB,并且禁用 MyISAM 存储引擎,随着 MySQL 8.0 版本的发布,所有的数据字典表都已经转换成了 InnoDB,MyI ...
无题
网络API接口设计目前许多的Web应用和移动应用都使用了前后端分离的开发模式,前后端分离简单的说就是前端或移动端通过网络API接口和后台进行交互,获得接口中提供的数据并负责用户界面的渲染。API是应用程序的编程接口的缩写,网络API通常指的是基于一个URL(统一资源定位符)可以访问到的资源,也就是说通过这个URL我们就可以请求服务器对某个资源进行操作并返回操作的结果。大家可以想想,网络API接口不也是一种封装吗,简单的说就是将复杂的业务逻辑隐藏在简单的API接口中。
URL的通用格式如下所示:
1协议://用户名:口令@主机:端口/路径1/.../路径N/资源名
说明:URL中的用户名(有可能不需要提供用户名)、口令(有可能不需要提供口令)、端口(有可能使用默认端口)、路径(资源有可能直接位于根路径/下)并不是必需的部分,可以根据需要进行设置。
网络API通常基于HTTP或HTTPS进行访问,基于HTTP/HTTPS最大的好处就在于访问起来非常的简单方便,而且可以跨语言、跨应用进行访问和互操作。
设计原则关键问题为移动端或者PC端设计网络API接口一个非常重要的原则是: ...
无题
软件测试和自动化测试软件测试概述软件测试是一种用来促进鉴定软件的正确性、完整性、安全性和品质的过程,也就是在规定的条件下对程序进行操作以发现程序中的错误,衡量软件的品质并对其是否能满足设计要求进行评估的过程。
测试的方法黑盒测试:测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。此测试方法可适合大部分的软件测试,例如集成测试和系统测试。
白盒测试:测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑箱测试)。在白箱测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。
由于时间和成本的约束,软件测试中一个最为关键的问题就是:“在所有可能的测试用例中,哪个子集能发现最多的错误?”。所以在设计测试用例时,白盒测试看重程序逻辑覆盖的程度(语句覆盖、条件覆盖、分支覆盖),黑盒测试 ...
无题
电商网站技术要点剖析商业模式
B2B - 商家对商家,交易双方都是企业(商家),最典型的案例就是阿里巴巴。
C2C - 个人对个人,例如:淘宝、人人车。
B2C - 商家对个人,例如:唯品会,聚美优品。
C2B - 个人对商家,先有消费者提出需求,后有商家按需求组织生产,例如: 尚品宅配。
O2O - 线上到线下,将线下的商务机会与互联网结合,让互联网成为线下交易的平台,例如:美团外卖、饿了么。
B2B2C - 商家对商家对个人,例如:天猫、京东。
需求要点
用户端
首页(商品分类、广告轮播、滚动快讯、瀑布加载、推荐、折扣、热销、……)
用户(登录(第三方登录)、注册、注销、自服务(个人信息、浏览历史、收货地址、……))
商品(分类、列表、详情、搜索、热门搜索、搜索历史、添加到购物车、收藏、关注、评论、……)
购物车(查看、编辑(修改数量、删除商品、清空))
订单(提交订单(支付)、历史订单、订单详情、订单评价、……)
管理端
核心业务实体的CRUD
定时任务(周期性和非周期性,如处理未支付订单、采集数据对异常事件报警、……)
报表功能(导入导出Excel、PDF等以及 ...
无题
项目部署上线指南准备上线
上线前的检查工作。
1python manage.py check --deploy
将DEBUG设置为False并配置ALLOWED_HOSTS。
12DEBUG = FalseALLOWED_HOSTS = ['*']
安全相关的配置。
123456789101112131415161718192021# 保持HTTPS连接的时间SECURE_HSTS_SECONDS = 3600SECURE_HSTS_INCLUDE_SUBDOMAINS = TrueSECURE_HSTS_PRELOAD = True# 自动重定向到安全连接SECURE_SSL_REDIRECT = True# 避免浏览器自作聪明推断内容类型SECURE_CONTENT_TYPE_NOSNIFF = True# 避免跨站脚本攻击SECURE_BROWSER_XSS_FILTER = True# COOKIE只能通过HTTPS进行传输SESSION_COOKIE_SECURE = TrueCSRF_COOKIE_SECURE = True# 防止点击劫持攻击手段 ...
无题
贝叶斯分类