案例一:幼兒園用戶心理測(cè)評(píng)套餐設(shè)計(jì)方案
原始設(shè)計(jì)方案:
點(diǎn)評(píng):原始設(shè)計(jì)方案败潦,結(jié)構(gòu)完整,實(shí)現(xiàn)方案功能OK。
會(huì)議評(píng)審改進(jìn):
一赎懦、模塊概述
注:本部分需要完整描述需求所涉及的功能,相當(dāng)于需求的全面掌控幻工,因此各項(xiàng)功能需要一一列出励两;
評(píng)審意見(jiàn):
1.功能描述不夠,有缺失
2.常見(jiàn)問(wèn)題囊颅,代碼實(shí)現(xiàn)中肯定考慮了当悔,但是功能描述時(shí)沒(méi)有列出;
3.不完整列出踢代,容易導(dǎo)致考慮不完善盲憎;要點(diǎn)功能項(xiàng)必須列出,也是思維的完備性奸鬓;
評(píng)審修改:
點(diǎn)評(píng):
2.幼兒園用戶注冊(cè)和登陸
這條是必備焙畔,正因?yàn)槭潜貍洌秃雎圆粚?xiě)了串远。但是其為要點(diǎn)功能必須寫(xiě)(堅(jiān)持思維的完備性)宏多;
3.幼兒園用戶測(cè)評(píng)得分保存
第四點(diǎn)隱含了儿惫,但必須單獨(dú)列出,也是核心功能伸但;
5.信息統(tǒng)計(jì)分類(lèi):
1)班級(jí)+所有寶寶+量表+總得分——>評(píng)價(jià):優(yōu)中差肾请;
2)班級(jí)+男/女+量表+各維度得分——>各項(xiàng)評(píng)價(jià)
幼兒園版功能實(shí)現(xiàn)的服務(wù)目的和數(shù)據(jù)使用的擴(kuò)展,以便充分考慮核心功能實(shí)現(xiàn)方案更胖;
二铛铁、模塊設(shè)計(jì)
注:本部分需要描述逐個(gè)功能的實(shí)現(xiàn)方案思路和設(shè)計(jì)要點(diǎn);包括流程和數(shù)據(jù)存儲(chǔ)等却妨。
評(píng)審意見(jiàn):
1.方案1饵逐、方案2均可,都能很好實(shí)現(xiàn)套餐功能彪标;
2.方案1數(shù)據(jù)庫(kù)存表倍权,在業(yè)務(wù)不定時(shí),更便于擴(kuò)展捞烟,無(wú)需修改代碼薄声;
3.方案2代碼靜態(tài)變量存儲(chǔ),體量不大题画,更有效率和更簡(jiǎn)便默辨;
4.本次業(yè)務(wù)場(chǎng)景如上,暫無(wú)擴(kuò)展苍息,因此優(yōu)選方案2缩幸;
2.幼兒園用戶信息和注冊(cè)
方案1:
方案2:
評(píng)審意見(jiàn):
1.方案1、方案2均可档叔,但均需用戶主動(dòng)注冊(cè)桌粉,對(duì)定向推廣的用戶可以后臺(tái)批量注冊(cè),因此推薦方案3衙四,參見(jiàn)評(píng)審修改1铃肯;
2.本部分是否有功能點(diǎn)遺漏,沒(méi)有描述传蹈?(可以思考一下)
點(diǎn)評(píng):原始方案這部分功能初看沒(méi)有什么問(wèn)題押逼,但是跟模塊概述部分忽略寫(xiě)評(píng)審修改意見(jiàn)里面的第2點(diǎn)功能一樣,也忽略遺漏一個(gè)要點(diǎn)功能惦界,參考評(píng)審修改意見(jiàn)2
評(píng)審修改:
1.新增方案3挑格,如下:
2.遺漏功能,如下:
3.測(cè)評(píng)流程
現(xiàn)有的測(cè)評(píng)流程不改變
4.測(cè)評(píng)結(jié)果保存
方案1:
點(diǎn)評(píng):此部分是核心功能沾歪,也比較復(fù)雜的部分漂彤,也是最有意思的部分,通過(guò)評(píng)審,我們逐步展開(kāi)挫望。:)
評(píng)審意見(jiàn):
1.按照業(yè)務(wù)場(chǎng)景立润,只需要保存每個(gè)寶寶的測(cè)評(píng)總得分(1項(xiàng)),維度得分(多項(xiàng))媳板;沒(méi)有必要保存每道題的得分桑腮;
2.測(cè)評(píng)的總得分(1項(xiàng)),維度得分(多項(xiàng))蛉幸,原表涉及比較冗余破讨,記錄總得分時(shí)dimension_id,dimension_avg,dimension_score均為0,反過(guò)來(lái)記錄多項(xiàng)維度得分時(shí)total_avg,total_score均為0奕纫,太冗余提陶,因此應(yīng)該考慮合并。由于總得分只有1項(xiàng)若锁,維度得分每個(gè)都有非0的維度ID搁骑,因此改進(jìn)如下:
點(diǎn)評(píng):復(fù)用dimension_id字段,0代表總得分又固;維度得分和總得分字段合并;測(cè)試時(shí)間也可以不用記錄煤率;
3.其他評(píng)審意見(jiàn):幼兒園ID編號(hào)更方便于數(shù)據(jù)提妊龉凇;gender性別字段可以不用記錄蝶糯,因?yàn)橥ㄟ^(guò)baby_id查寶寶信息表就可以查到洋只;
到這里是不是感覺(jué)評(píng)審差不多,其實(shí)才剛剛開(kāi)始昼捍,請(qǐng)接著往下看
評(píng)審修改:
1.這部分比較重要识虚,我們先看幾個(gè)問(wèn)題:
問(wèn)題三解答:幼兒園測(cè)評(píng)得分信息保存后的使用場(chǎng)景,我可以預(yù)想到離線場(chǎng)景妒茬,后臺(tái)一套程序?qū)iT(mén)實(shí)現(xiàn)從數(shù)據(jù)庫(kù)中提取信息担锤,進(jìn)行分類(lèi)和統(tǒng)計(jì)。要點(diǎn)就離線場(chǎng)景:與線上系統(tǒng)分離乍钻,不用考慮性能肛循,查多少個(gè)表,只要數(shù)據(jù)可以提取即可银择。而原方案中保存了寶寶的城市信息和幼兒園信息等多糠,這些信息肯定在寶寶信息表中,那么線上系統(tǒng)保存得分時(shí)必須多查一次表浩考,但是線上系統(tǒng)要考慮性能夹孔,因此我們得到優(yōu)化如下:
點(diǎn)評(píng):保存得分表去掉了city,preschool等信息,因此可以查詢寶寶信息表即可。而且減少了在線系統(tǒng)的查表次數(shù)搭伤;上面的問(wèn)題二也得到了解答只怎。
問(wèn)題一解答:這是一個(gè)擴(kuò)展問(wèn)題,涉及前后業(yè)務(wù)功能闷畸,要回答這個(gè)問(wèn)題尝盼,我們要看看之前的測(cè)評(píng)流程,幼兒園用戶的測(cè)評(píng)流程前部分和普通用戶的測(cè)評(píng)流程一樣佑菩,因此要想知道我們?cè)黾右粋€(gè)流程圖部分盾沫,如下:
點(diǎn)評(píng):為什么要增加流程圖,流程圖反映了功能子模塊殿漠,另外也讓你看到之前的設(shè)計(jì)赴精,以便思考和分析。業(yè)務(wù)是否正確绞幌,是否相似蕾哟,是否可以復(fù)用;
保存測(cè)評(píng)得分save_history()——普通用戶測(cè)評(píng)這個(gè)函數(shù)實(shí)現(xiàn)什么功能莲蜘,放大保存的數(shù)據(jù)庫(kù)表谭确,是記錄每個(gè)測(cè)評(píng)表的男/女總得分和維度得分,以便大數(shù)據(jù)匯總和改進(jìn)票渠。
對(duì)比三個(gè)表有沒(méi)有發(fā)現(xiàn)逐哈,第三個(gè)對(duì)應(yīng)的原來(lái)方案幼兒園測(cè)評(píng)得分保存這個(gè)函數(shù),但是他們的信息卻基本一致问顷。
再點(diǎn)評(píng):這時(shí)我們才發(fā)現(xiàn)昂秃,以前普通測(cè)評(píng)保存得分的業(yè)務(wù)需求和這次幼兒園測(cè)評(píng)得分保存時(shí)間上屬于相似業(yè)務(wù),代碼可以復(fù)用(原來(lái)代碼稍加修改即可杜窄!)
因此前后反觀肠骆,發(fā)現(xiàn)我們之前遺漏了一個(gè)潛在需求(普通用戶得分保存也需要增加baby_id)!以便地域分析塞耕。到這里他們也合并了蚀腿!
至此評(píng)審結(jié)束。
結(jié)束語(yǔ):
程序設(shè)計(jì)是一場(chǎng)邏輯思維的旅程荷科,你思考到哪里唯咬,你的代碼就走到哪里。而設(shè)計(jì)文檔的編寫(xiě)畏浆,正是一場(chǎng)思維之旅的印跡胆胰。我們不是反反復(fù)復(fù)的code,modify刻获,code again蜀涨。而是在code之前,停下腳本,好好思考厚柳,提前你的筆氧枣,開(kāi)始一場(chǎng)思維風(fēng)暴!