架构设计我爱编程

某装修平台项目技术总结

2018-07-26  本文已影响79人  dongshixiao

一、非技术层面

1. 项目----拆分----> 模块

项目开始时,应把项目分解为多个模块.按照模块间耦合度排序.按照低耦合==>高耦合开发.
比如该项目的顺序就是:
登录注册=>钱包模块=>我的模块=>商家=>任务=>工人=>IM=>订单=>工程
前端和程序一块开始项目,稍微等登录注册写两个页面就可以开干了.缩短了项目周期
前端15天 + 程序20天 = 35天 ===> 前端15天 + 程序20天 = 21天

2.让原型图发挥最大作用.

下面一张被侮辱过后的原型图


原型图

✔ 代表前端此页面已完成,并在下方标注模板页面名称(如订单十几个长相差不多的页面,项目总计180+个页面,不标注根本分不清楚)
▲ 代表美工已审阅前端做出页面
⭐代表程序已经开发完此页面
在此页面上测试人员也可以做出一种标记,不会出现漏测页面情况.

3.与前端沟通交流(插件)

下面我要举栗子了:

需求:项目需要显示地图可视范围内的任务,顶部是筛选插件(工种,时间段,关键词)

选择管理人插件

二、技术层面

1. Plus地图

上述插件主要逻辑

2.Elasticsearch(es)在实际项目中的应用

es中的排序

上述需求如果只是根据距离排序,那么只需要使用sort就可以完成.
但是如果按照评分和最近发布来排序应该怎么处理?
如何拿到距离?

组合查询例子:

Array
(
    [query] => Array
        (
            [bool] => Array
                (
                    [must] => Array
                        (
                            [0] => Array
                                (
                                    [term] => Array
                                        (
                                            [city_id] => 76
                                        )

                                )

                            [1] => Array
                                (
                                    [term] => Array
                                        (
                                            [type] => 2
                                        )

                                )

                            [2] => Array
                                (
                                    [multi_match] => Array
                                        (
                                            [query] => 李
                                            [fields] => Array
                                                (
                                                    [0] => name
                                                    [1] => contact_tel
                                                )

                                        )

                                )

                            [3] => Array
                                (
                                    [term] => Array
                                        (
                                            [area] => 锡山区
                                        )

                                )

                            [4] => Array
                                (
                                    [terms] => Array
                                        (
                                            [worktype] => Illuminate\Support\Collection Object
                                                (
                                                    [items:protected] => Array
                                                        (
                                                            [0] => 吊顶隔墙
                                                            [1] => 装门
                                                            [2] => 定制家具
                                                        )

                                                )

                                        )

                                )

                            [5] => Array
                                (
                                    [range] => Array
                                        (
                                            [workyear] => Array
                                                (
                                                    [lte] => 2013
                                                )

                                        )

                                )

                            [6] => Array
                                (
                                    [terms] => Array
                                        (
                                            [tag] => Array
                                                (
                                                    [0] => 系统认证
                                                    [1] => 掌柜认证
                                                    [2] => 已购保险
                                                )

                                        )

                                )

                        )

                    [must_not] => Array
                        (
                            [0] => Array
                                (
                                    [terms] => Array
                                        (
                                            [busydate] => Array
                                                (
                                                    [0] => 20180730
                                                    [1] => 20180731
                                                )

                                        )

                                )

                        )

                )

        )

    [_source] => Array
        (
        )

    [script_fields] => Array
        (
            [geo] => Array
                (
                    [script] => doc['geo'].arcDistance(31.589228,120.342128)*0.001
                )

        )

    [sort] => Array
        (
            [send_score] => Array
                (
                    [order] => desc
                )

        )

)
上一篇下一篇

猜你喜欢

热点阅读