公司项目相关

目录

公司相关

你在公司具体是做什么负责什么业务

我是负责后端开发,主要就是负责项目中模块代码的编写
比如说在 轻量级的办公管理平台 中这个项目我负责
编写的是 客户管理模块 需要解决的需求是
公共客户与销售客户的不同显示
公户转私人客户的逻辑 
批量删除客户
编辑客户
搜索客户
用到的技术

产品采购分销系统
中这个项目 我负责的是 财务管理模块
需要解决的需求是
每个人的查询工资并且一键计算的展示(权限)
查看工资明细 历史信息
数据存数据库中 








用到的技术

电子元件价格监控系统  我就负责编写脚本,在不影响目标网站的情况下爬取有用的信息,进行持久化存储 并且提取有用的信息 编写报告,提交其他部门

用到的技术
https://www.cnblogs.com/tangjian219/p/12066081.html
3.增量式爬虫
通过爬虫程序监测某网站数据更新的情况,以便可以爬取到该网站更新出的新数据

数据解析的通用原理
标签定位
取文本或者属性
    
bs4的解析原理
   实例化一个BeautifulSoup的对象,并且将即将被解析的页面源码数据加载到该对象中
   调用BeautifulSoup对象中的相关属性和方法进行标签定位和数据提取
   
   
1.采用requests爬取目标网站,使用代理 IP 池和更换 UserAgent 防止网站封 IP
2.使用 Xpath、re对抓取的数据进行抽取
3.使用 mysql 数据库做持久化存储
4.使用pandas进行数据分析和清洗,使用echarts实现可视化


遇到的问题  关于图片名称的中央乱码问题  ISO-8859-1官方解释



在爬虫中遇到ip被禁掉如何处理?
    使用代理
    构建一个代理池
    拨号服务器
    
 代理服务器:实现请求转发,从而可以实现更换请求的ip地址
    在requests中如何将请求的ip进行更换
    
    
selenium
- 概念:基于浏览器自动化的一个模块。
- 环境的安装:
    - pip install selenium
- selenium和爬虫之间的关联:
    - 模拟登录
    - 便捷的捕获到动态加载的数据(重点)
        获取的页码源码数据 : page_source
        - 特点:可见及可得
        - 缺点:效率低

- selenium的具体使用
    - 准备浏览器的驱动程序:http://chromedriver.storage.googleapis.com/index.html
- 动作链:ActionChains,一系列的行为动作
    - 使用流程:
        - 实例化一个动作连对象,需要将指定的浏览器和动作连对象进行绑定
        - 执行相关的连续的动作
        - perform()立即执行动作连制定好的动作
        
        
 多任务异步协程asyncio
特殊函数:
    - 就是async关键字修饰的一个函数的定义
    - 特殊之处:
        - 特殊函数被调用后会返回一个协程对象
        - 特殊函数调用后内部的程序语句没有被立即执行
        
- 协程
    - 对象。协程==特殊的函数。协程表示的就是一组特定的操作。

你的公司有多少人 部门有多少人 测试开发多少人

200  20  10    开:测试3:1 或2:1

CRM项目

描述crm有哪些功能?

1.注册登录
2.批量操作
3.模糊搜索
4.公私户转换(事务和锁)
5.分页(自定义分页组件)
6.各业务数据的增删改查(orm操作,modelform,form)
7.批量修改学习记录(modelformset_factory)
8.权限组件开发
   1.数据库表设计(6张表,4个model类)
   2.权限对应url路径,基于rbac,也就是基于角色进行了权限控制
   3.权限分配
      1.权限数据批量生成(modelformset_factory,和formset_factory,),首先获取项目中各个应用的url路径,然后和数据库中保存的url权限数据进行比较(set集合),项目中比数据库中多的,就是我们要添加的权限数据,少的就是剔除的一些功能,
      2.给用户分角色,给角色分权限
      3.权限注入(数据库查询改用户的所有权限数据,然后讲这些数据注入到session中,session可以配置缓存,各个位置存取数据都很方便,而且数据是加密的)
      4.权限校验(中间件,权限认证白名单,通过正则来校验该用户当前访问的路径有没有在他的所有权限路径中)
      5.动态菜单(二级菜单)(做了菜单数据结构,注入到session中,通过inclusion_tag渲染每个用户不同的菜单标签)
      6.路径导航-面包屑(定义了一个面包屑列表,将用户访问的路径所对应的二级菜单信息和一级菜单信息,加到了这个列表中,并将列表封装到了request对象里面,在前端进行了模板渲染,循环生成了路径导航)
      7.精确到按钮级别的权限

crm中什么是公户?什么是私户?为什么要做这个区分?

1. 没有分配给任何一个销售的客户,都称为公户,已经分配了的就是某个销售的私户
2. 销售容易产生矛盾,提高销售的服务质量,提高转化率,并且可以进行销售的业绩统计

请列举出CRM系统中的表。

用户表,客户表,跟进记录表,报名表,课程表,学习记录表,权限表....

对数据库的数据做展示时,不同字段类型有不同的展示方法,分别是什么?

1.对象.属性
2.对象.属性.另外一张表的属性
3.get_字段名_display(choice字段显示)       
4.对象.属性.all()(获取到关联的多对多表的数据信息)

请详细说说你们公司销售是如何使用CRM的。

1. 登录
2. 查看公户信息,选取自己想聊的客户,拉到自己的私户中
3. 然后对客户进行一对一深入交流
4. 将每次交流体验记录到跟进记录中
5. 也负责帮助客户写报名信息
6. 然后缴费成功之后,进行售后服务

CRM中有哪些技术点?

技术栈:  django\modelformset_factory\jquery\bootstrap\ajax\html\css\mysql\orm\nginx\uwsgi

为什么不用现成的crm而是自己去开发?

公司业务定制性很强,现成的crm不能够满足需求

请简述实现权限控制的流程?

1.一个URL就是一个权限
2.不同的用户对应不同的身份,不同的身份对应相应的权限,进而实现对权限的控制

列举权限有多少张表?表中都有那些字段?

6张表
用户表:用户名
身份表:身份名称
菜单表:
权限表:权限名称
用户-身份    多对多表  
身份-权限    多对多

为什么要把权限信息放到session中?权限信息放到session有什么优点?

1.操作方便,可以配置到缓冲中、数据库中、redis中
2.权限用的比较多,去缓冲中拿要快很多

权限控制到按钮级别是如何实现的?

按钮的url别名和数据库的权限表字段url_name进行对比

如何实现把权限粒度控制到数据行?

hao添加一条件表,记录着数据表名,查询条件(id>2) 

cmdb项目

项目名称:服务器资产采集

项目描述:

服务器硬件管理是一个用于自动化采集服务器资产信息的项目,由于公司对于资产维护成本比较高并且数据准确性越来越低,因为原来都是搭建了samba服务,在内部共享了excel实现。通过项目可以改善资产采集的功能,减低人员成本提高工作效率,本项目实现主要有 采集中控机/restful api/资产管控平台 实现。

对于采集中控机可以支持多种模式进行操作,如:saltstack/ansible/paramiko默认,并且开发过程中遵循开放封闭原则并且利用 工厂模式 实现可扩展性的插件。

对于api,是严格是遵循restful规范并使用 django rest framework框架实现,并在内通过反射机制实现资产变更记录以及资产的持久化处理。

资产管控平台主要为运维及主管提供数据支持和部分报表,支持excel批量导入导出,支持利用时间轴清晰的展示服务器生命周期,基于highcharts实现数据报表的展示。 

项目功能点:

  • 针对不同公司的业务开发,基于SSH实现远程采集资产的扩展。
  • 参考 middleware 实现源码并结合工厂模式,开发出了可插拔式的采集资产插件。
  • 考虑到项目的严谨性,对于项目中的插件使用主动抛出异常进行约束。
  • 通过定制和扩展drf 内置authentication组件,实现用户认证。
  • 在restful api中实现api/版本/认证的功能。
  • 支持最服务器资产进行批量的导入导出,内部只用xlrd/xlwt模块进行操作。
  • 对于公司的服务器资产进行根据业务线做 数据报表的处理。
  • 基于rbac实现权限的信息的校验。

项目问题:

为什么要开发cmdb?

公司以后想要搭建自动化运维平台,CMDB是搭建平台的基石。
目前而言,公司资产信息不够准确,因为都维护在excel中,维护主要人,通过cmdb可以自动采集资产信息以及做资产变更记录。

cmdb架构以及实现?

cmdb是由三部分组成,其中包含:资产采集的中控机、API、资产管控平台。
1.对于资产采集部分,先会通过requests向api请求今日未采集的服务器ip或者其服务器对应的域名,通过paramiko远程操作服务器(本质SSH)并采集资产信息,然后将资产信息汇报到API,在资产采集部分还继承了可扩展的功能,让我们定制插件时可以更加方便,实现起来也比较简单,参考django中间件的原理、开放封闭原则、工厂模式实现可插拔式的插件。 
2.api,基于restful规范和drf组件来实现完成,主要做资产入库以及资产变更处理。 
3.资产管控平台,对资产数据进行数据呈现和报表的处理。

资产采集方式?

- paramiko
- agent
- ansible/saltstack

cmdb资产多久采集一次?

1天采集一次,硬件资产不会经常进行变动。

cmdb的中控机是如何实现每天执行一次?

定时任务crontab

你们公司有多少台服务器?(物理机)

70台服务器

什么是品牌的服务器?

戴尔

资产采集都用到了那些命令?

demidecode 
Megacli

board -- sudo dmidecode -t1
cpu -- cat /proc/cpuinfo
disk -- sudo MegaCli  -PDList -aALL
memory -- sudo dmidecode  -q -t 17 2>/dev/null
nic -- sudo ip link show/sudo ip addr show

cmdb都用到了那些表?(13张表)

用户表
部门
机房IDC
服务器
硬盘
网卡
内存
变更记录

菜单表
权限
角色表
角色和权限关系
用户和角色的关系表

多少人开发?

1个人 + 运维人员

开发了多久?

4个月
质疑时间短,开发资产采集很简单;资产管控平台也是有你来开发。

为什么公司有ansible还要用paramiko去实现?

1.ansible的本质也是基于paramiko去实现的,
2.ansible会使性能降低一些

为什么要做资产采集?

定期统计服务器的配置信息,如果服务器又硬件新增、变更、或者损坏的时候,可以及时的发现,做相应的操作

为什么不用sn号做唯一标识?

当要采集虚拟机的资产信息时,sn号就不可以做唯一标识,因为一台物理机的多个虚拟机的sn号是相同的、并不是唯一;
当只采集物理机的资产信息是=时,sn号就可以作为唯一标识。

为什么要开发多种模式?

为了使自己的项目有更好的可拓展性,而不是只局限于一个工具或者是只能是一中情形下才能使用。

你公司用的哪种模式,为什么?

ansible,通过paramiko实现的采集资产信息,因为这样效率会更高一些

项目的优势和亮点?

1.可拓展性,它仅仅是只能通过一种工具做资产采集
2.在每个采集的子类中,都有了约束效果
3.其中还采用了反射以及工厂模式

是否支持windows和linux?

建议:支持linux(预留了windows接口)

大家都用虚拟机了,为什么公司还用物理机?

1.首先,如果用的是虚拟机的话,数据是不安全的,毕竟数据是保存的不是自己的上服务器上的。
2.物理机是独享,虚拟机是和别人共享的,虚拟机的稳定性没有物理机好

猜你喜欢

转载自www.cnblogs.com/saoqiang/p/12453822.html