我的工作生涯中关于项目的需求和功能分析(房地产项目)

  这一篇是 我在之前的之前公司中最后一个项目,期间虽然有一些小项目,但都内容都不及我之前的几个,当然我之前的几个也不算大就是了。

  好了,这个项目是一个A轮创业公司的,创业一般不会来找外包,就算来找外包,项目进度也需要非常快,功能要求多。

  不过经过我研究他们的需求后,发现要的功能不是特别多嘛 。。。然后我就错了。。。

  开始项目分析:

    首先单就功能描述来说,就是房产中介,类似房*多,房*下这些,他们老板也说了照这个抄一个大概就可以,看到这里我就知道抄一个差不多是有多困难。。不过反正是给多少钱做多少事。。

  首先当然是没有异常监控平台的,所以也只有一个服务器,不过毕竟是一个房地产项目,该有的功能还是应该有的,然后则是vr 装修和 3d全景看房。

  1. 准备工作,域名优化和路径优化,因为有伪分站和url优化的需求,毕竟创业公司相对来说更注重这些东西。
  2.   首页 ,首页包含的内容相对其他同类型网站来说比较少,只有推荐楼盘,楼盘城市,网站功能导航和顶部导航,顶部是导航,上部主要功能凸显也就是VR看房,中间部分是网站导航和城市,底部是网站信息。
  3. 首页搜索
  4. 网站核心功能也就是房产信息的搜索和筛选(条件查询)功能。

    1. 首先是房源分为,二手房,新房和租房,二手房有砍价,Vr全景和预约功能,而租房有预约和在线聊天,新房有比价和vr全景。

      1. 预约功能,是提交一个表单 有手机号和预约时间,得到这个时间后,运营会打回访电话确认。
      2. 砍价也是表单提交,和上面的预约功能差不多,但是运营方面的内容是不一样的,砍价需要和客户联系获得客户心理价位,然后和卖家砍价,这个还是一个收费项目,线下收费,当然这里面猫腻太多,不过对我来说是没必要考虑的。
      3. VR 房产信息展示,这个是从 喵** 他们制作vr,然后由运营把制作出来的vr放到服务器中并填写路径。
      4. 在线聊天是与卖家沟通,这里如果为了增加用户粘性应该是app内聊天,但是因为技术原因目前是qq聊天。
      5. 比价这个功能可以在客户端实现,用户选择一个新房,点击比价功能,在页面右侧有一个比价界面,之后再选择另一个新房,点击比价后,弹出或跳转到一个页面,在这个界面中显示多个新房的信息。
      6. 地图位置和周边。
  5. 3D家装渲染, 集成酷**。
  6. 租售中心,主要是描述该功能的页面,以及一部分指引。
  7. 用户中心功能,登录,注册,发布房源,收藏房源 ,qq登录,微信扫码登录和微博登录。
  8. 计算器功能
  9. 后台运营功能
  10. 手机端,功能和pc端差不多
    1. 二手房,租房和新房不变,Vr在线换材,也就是我实际制作的功能,这点会在后面细讲,虽然功能分析我全部做了,但是我实际编写的部分就是Vr在线换材,之后就离职了。。。。
    2. 这里功能大概和pc端差不多,但是取消了比价功能,毕竟界面不是特别好弄,数值也不是很好显示。

  

接下来就是功能实现部分:

  1. 所谓的url优化和路径优化, 路径优化 是以restful 风格 作为对应的风格,也就是 比如 https://www.baidu.com/search/你要搜索的内容   这样的就是 restful 风格,关于这个我就不过多的解释了。

    1. 然后是url优化,因为分站存在的关系,比如 房*多 他们就是这样的:http://shanghai.fangdd.com/ 而这里的伪分站指的是同一个服务器,但是开启了泛域名后,在解析url时参数前置 ,例如原本是 http://www.fangdd.com?city=shanghai  这里在配置url路径的解析规则时前置参数而形成虽然输入的是 shanghai.fangdd.com 但是实际请求的是同一台服务器,只是新增了这样一条解析规则,这里告诉大家一个小技巧,也就是 真分站还是我这样的伪分站,就是查看不同域名的ip是否指向同一个服务器,当然这是敲门是对一般的小网站来说,大型的网站不用想,肯定是分布式服务器,而且因为 反向代理技术(通常使用Nginx)的原因,有时候你访问一个域名下的不同域名看到的ip  可能反而是相同的。
    2. 反向代理致敬godv   ,先理解正向代理,一般来说就是用户通过 代理服务器上各种不同的网站,那么反向代理就是 根据用户的请求来响应不同的服务器。
  2. 首页部分功能是数据提取后显示到主页,但这里有个问题,首页的内容通常来说是不能变动的,而这里就要根据客户需求做出不同选择了,如果想在有限条件内变动,比如不改变样式而改变页面中显示的内容,可以使用缓存技术,而如果希望页面内容一直不改变则可以使用生成静态页面来实现这部分功能,但到了一定数量级之后,都会走向数据分析后智能显示页面内容。
  3. 首页搜索功能以及 其中板块筛选内容,这部分就涉及到了 多条件查询以及模糊查询,如果单用sql自带的查询那性能可就很低了,这里也有几种处理方案,1就是最基本的sql查询,虽然性能比较低但是最简单。2是使用全文检索引擎和分词工具,各个成熟语言都有对应的功能,集成起来也不是很麻烦 。3 就是使用 Elasticsearch  作为服务调用,关于这个搜索服务器 其实也是调用api ,对程序来说 接口就是越来越高层,以我的性格肯定是使用第三种,但这部分毕竟是别人做的,所以这里项目中使用的是第二种方案,相对折中一些吧,实施起来也比较简单。
    1. 页面的功能就是房产信息列表和详情,这个在上面说了使用全文检索工具来显示,然后通过外键保存房产 tag 信息,以多对多来复用tag。
    2. 然后是页面中的预约功能和砍价,这部分数据可以存放在一起,以一个字段来区分是预约还是砍价,最后在2个页面中显示,在后台也需要一个字段来标记运营是否处理以及处理情况,还有一个外键来存储用户处理情况信息描述。
    3. Vr房产信息,一般来说一个房屋只有一个vr全景,但是如果是同户型的,那么就没有重复上传的必要了,所以上传对应房产的页面需要有一个text文本框,上传完毕后也会返回一个text ,通过这个text 来达成复用同一个vr全景的功能以节约服务器硬盘空间。
    4. 在线聊天,这个也有几个解决方案,首先就是最简单的借助第三方来达成这个功能,app间通信可以使用第三方框架也可以自己实现,具体实现细节就是有一个房间,这个房间中只有源用户和目标用户,之后再怎么做就不用多说了,我在其他语言了解不多,但是据我所知 c#方面有一个SignalR的框架,有兴趣的可以了解一下,我只能说大软爹的东西就是好用,这个工具实现出一个聊天室功能真的用不了几行。
  4. 这部分是集成 酷** ,具体什么公司懂的都懂,是一个在线设计和渲染家庭装修的网站,使用flash实现。
  5. 租售中心只是一个描述页面,描述对应功能,但对应功能只是一个提交表单联系客服。。
  6. 用户中心登录注册等等可以使用rbac框架来实现对应功能,发布,收藏,删除,修改房源,这部分注意不要能修改其他用户上传的房源就好了,然后是后台要有开关这部分的功能,所以这里可以通过rbac框架基于user和 role来实现,比如配置一个全局拦截器,当用户访问这个页面时,拦截器根据是否允许访问来允许或拒绝用户是否能够访问。
    1.   qq登录,微信扫码登录这些都有api和文档,实在不行看别人的实现案例就可以了,花费的时间不是很长。
  7. 计算器功能就是税率计算器等一系列计算器,这里还是先从网上抄一下,然后看看有没有什么浮点错误和除零问题之外,基本没什么好说的,唯一要点就是找一个比较新的。
  8. 后台运营功能,也就是运营常用的功能,无非就是用户管理,房源信息管理什么的,其实没什么好说的,因为某些原因所以也没有错误监控平台,毕竟只有一个服务器,如果出现问题也就只能开发来看看日志再根据错误原因来复现和解决问题。
  9. 手机端的其他功能在上面基本都有描述过了,这里重点数一下 手机端的 vr在线换材。
    1. 首先这个功能在初期是基础当前平台的帐号和密码,但是因为某些原因,这个功能是一个单独的域名和服务器。
    2. 该功能主要是根据对应的城市选择楼盘,选择完楼盘后再选择户型,之后再根据户型进入vr换材页面,服务器保存对应用户的vr换材,之后再选择设计师和项目经理,再之后就结束流程。
    3. 看似很简单,但光这一部分我就做了2个月左右,首先根据城市选择对应楼盘,选择对应楼盘后再选择对应户型,这一部分因为我们前端只会写静态页面,所以与后端交互的js是我自己写的。。。但是我是后端,所以js写的也不是很好。
    4. 之后进入vr换材,这里的vr场景依旧是 喵**他们制作的,然后他们依旧只制作vr场景,与数据库交互依旧变成了我来编写。。。。那这一部分逻辑就复杂了,因为vr场景有 风格,房间和选材,我要做的就是根据用户选择跳转到对应vr空间,在空间中保存用户选择的风格和用户选材,这部分可以说是最麻烦的,1是制作vr场景的参数很容易出错,而且他们的参数很简单 ,我给个示例: cq1-d2-g4 意思就是 厨房的 墙面的1号墙漆 和 地板的2号地板 和 橱柜的4号橱柜。。当时我就懵逼了是吧,大哥你用json 或者xml也比这个好啊。。。然后这部分还容易出错,因为装修建材里是有重复名称,升级和普通内容的,总之我的实现方式是 ,当用户选择完城市楼盘和户型后,生成数据库主表内容,之后再根据用户选择保存成外键内容,再选择完毕后再保存外键设计师和项目经理,之后还有升级包内容,也就是普通装修不带吸油烟机,但是升级(付钱)后选择合作品牌的装修材料。
    5. 总之这部分有太多的技术实现细节,但是确实是光说也就上面这些了。
    6. 这部分还包括用户登录注册,微信qq登录还有后台管理功能,有 城市,楼盘,户型, 装修材料,类型和区域,装修材料和区域是多对多关系,然后在多对多关系中保存是否是升级包以及价格,因为不同楼盘和户型中对应装修材料是不同价格的。
  10. 总结:这个可以说是我花费精力最多,技术细节最多,我个人感觉我所做过的项目中是最难的一个项目了,也花费了我全部的精力,总之就是在个人能力有限的情况下,采取适中的实现方式和良好的时间分配还有问题的良好的总结,是我作为整个公司唯一一个后端兼实施兼运维兼测试兼项目经理的肺腑之言,一个人的能力是有限的,同时一个人的精力也存在巅峰和低谷,所以尽量扬长避短,自己做不了的地方一定要说出来。
时间: 2024-10-15 12:22:53

我的工作生涯中关于项目的需求和功能分析(房地产项目)的相关文章

我的工作生涯中关于项目的需求和功能分析(商城项目)

时隔一年左右,我又来啦! 这次是一个商城项目,还是照例分为三个栏目,项目需求,需求解析和需求实现. 不具体到技术细节,只谈论如何实现,以及如何以更好的方式实现. 项目需求: 首先,需求就是一个商城,有分类,有商品,有购物车,有优惠券,有拼团和众筹,有订单管理的商城系统. 但是,这个商城有一个不太一般的功能,就是分销商功能. 分销商的功能有很多,也可以管理商品,但是分销商上传的商品需要运营人员审核后才可以上架,筛选购买总店的商品,分类和专题商品, 同时分销商还可以返佣和店铺折扣,也就是在分销商的店

如何修改myeclipse中web项目的工作路径或默认路径

如何修改myeclipse中web项目的工作路径或默认路径 博客分类: J2EE开发技术指南 安装好myeclipse后,第一次启动myeclipse时,都会弹出会弹出Workspace Launcher对话框,叫你设置myeclipse工作路径.通常我们设置完了后,为了以后打开时不会再弹出这个对话框,都会把“Use this as the default and do not ask again”这个选框勾选掉,免得以后麻烦.但是当工程项目较多时,我们又要把项目分开, 不让工作路径太大太复杂,

请列出你在从事IT生涯中,最难以忘怀的一次误操作

IT系统最怕什么,我觉得就两点: 1.不可靠的软硬件. 2.误操作. 第一点就不用解释了,第二点是该文的内容,主要摘选自ITPUB的精华贴——[精华] 请列出你在从事DBA生涯中,最难以忘怀的一次误操作 中摘录各位网友的经验和教训,常看看以警惕自己. #2 一次一个session占用内存很大,这个session id比较大,所以以为是用户进程,kill, 则库立刻down了,查日志后,才知道是一个后台进程,但详细是哪个进程,现在忘记了. 好的是库起来了,这个故障,我一直牢记于心. 现在做任何操作

程序员编程生涯中会犯的7个错误

英文原文:7 Mistakes You're Making In Your Programming Career 作为软件开发人员生活和职业指导,我需要和很多程序员交流,帮助他们提升职业生涯,加速成长.时间久了,我发现很多程序员总是犯着相同的错误,前仆后继,却毫不自知.下面就是程序员在他们的软件开发生涯中最常犯的 7 个错误. 1. 没有明确的目标 心中没有终点目标,那就只会随波逐流. 如果你想在软件开发的职业生涯上获得成功,那么你需要有一个明确的目标.仅仅只是对遥远的未来有一个模糊的想法是不够

开发人员怎样减轻工作过程中遇到的压力

1.经常锻炼身体 身体是革命的本钱,如果身体不好,会影响工作的效率,即使你能力再强,如果身体不好,时不时的出现身体不舒服的问题,对工作效率也是会有影响的,所以经常锻炼身体显得特别重要. 运动时,不仅能分散注意力.忘掉不快,还能促进大脑分泌多巴胺.内腓肽等物质,它们是人体的“快乐因子”,有助于缓解不适.产生愉悦的情绪反应. 心情烦闷时,无论跑步或快步行走,只要出出汗,压力也会随着汗水,“溜”出你的身体. 另外要养成早睡早起的习惯,晚上11点以前睡觉比较好,再晚也尽量不要晚于12点,睡觉越晚,会越影

Java Web开发: Tomcat中部署项目的三种方法

web开发,在tomcat中部署项目的方法: 注意大小写 1.在conf目录中新建Catalina\localhost目录,在该目录中新建一个xml文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,改xml文件的内容为: <Context path="/qxmobile"  docBase="/usr/local/webroot/qxmobile" reloadable="false"  debug="0" p

随着“互联网+”概念在政府工作报告中提出,互联网金融领域再度升温

随着“互联网+”概念在政府工作报告中提出,互联网金融领域再度升温.大会启动之后受到了监管层.学术界.产业界.金融界.传媒界.投资界及行业协会的高度关注与踊跃参与.峰会特邀全国各地互联网金融前沿企业创始人.高管分享成功经验,打造了超高规格的互联网金融行业盛会.现场环节设计地精彩纷呈,高峰论坛.优秀项目推荐.投融资对接.品牌集中展示等,现场“站”无虚席,人气爆棚. 大会受到了包括国家和各省市政府金融管理机构的支持,四千互联网金融大咖参会,盛况空前.广东省金融工作办公室总经济师余昆明,广东互联网金融协

rsync与FTP(vsftpd)在不同工作场景中的应用

rsync与FTP(多为vsftpd)在大家的平时的运维工作中应该都多有接触,这里我就不再一一介绍了.很多朋友都觉得这两者可以跟同步和备份等同起来,其实真正使用的时候这两个是有区别的,我一般将rsync简概之为冗余,而FTP称之为备份,两者在不同的工作场景中的应用也是不同的,如下: 一.rsync可以应用如下的工作场景: ①NFS文件的一主一备环境,有些项目和网站限定了不能做NFS的DRBD双机方案,所以可以考虑用rsync作一个冗余NFS机器出来(--delete参数使用时应该谨慎): ②rs

项目进度管理必知:项目进度管理中的项目干系人管理(工具推荐)

做过项目管理的人都知道,项目干系人是驱动项目前进的核心战斗力,他们可以是个人.群体或组织.一个项目开展的如何,是由项目干系人的执行力.协作力.管理能力等多方面因素构成.因此,对于项目干系人的管理,也是项目管理里十分重要的一个学习课程.在本篇文章中,小编将教你使用Edraw Project来管理干系人. (关于文中工具和图表,有想获得全部PPT的,可以加QQ群:855868159,自己去下载!) 专业的项目干系人管理工具 在对项目干系人进行管理的时候,常常会面临几个问题:①是否能够按照任务属性分配