1.å端ä½ä»£ç å¹³å°(å端ä½ä»£ç å¹³å°å¼å)
2.网站二次开发是成本成本什么有关网站开发需要的技术
3.开发一个app要多少钱?
4.sap有多少模块?
5.最全|《人月神话》书摘,看这一篇就够了
å端ä½ä»£ç å¹³å°(å端ä½ä»£ç å¹³å°å¼å)
ä½ä»£ç å¼åå¹³å°æä»ä¹ç¹ç¹ï¼
ä¸ãä½ä»£ç å¼åå¹³å°æ¯ä»ä¹ï¼
ä½ä»£ç å¼åå¹³å°æ¯ä¸ç§æ éç¼ç æ使ç¨å°éç代ç å°±å¯ä»¥å¿«éæ建åºç¨ç³»ç»çå¼åå¹³å°ãå®è·ä¼ ç»çç¼å代ç æ¹å¼ä¸åï¼ä½ä»£ç ç强大ä¹å¤å¨äºï¼å®è½å 许ç»ç«¯å®¢æ·ä½¿ç¨å¹¶å¿«éç解çå¯è§åå¼åï¼è½è½»æ¾æ建客æ·èªå·±éè¦çåºç¨ç¨åºã
éçæºè½ææºçå´èµ·ï¼ç§»å¨äºèç½ææ¯å¾å°äºé«éåå±ï¼å¾å¤ä¼ä¸ä¸ºäºé«æ管çå ¬å¸å¼å§å°è¯ä½¿ç¨åºç¨è½¯ä»¶å®ç°ä¿¡æ¯å管çãèä½ä»£ç å¹³å°çåºç°ï¼æ£å¥½å¯ä»¥å¸®å©ä¼ä¸æé«åºç¨ç¨åºå¼åçé度ï¼éä½å¼åææ¬ãè¿ä¹æ¯ä½ä»£ç å¼åå¹³å°çä¸å¤§ç¹ç¹ï¼é£ä¹é¤äºè¿ä¸ªç¹ç¹ä¹å¤ï¼ä½ä»£ç å¼åå¹³å°è¿æä»ä¹å ¶ä»çç¹ç¹å¢ï¼ä¸é¢å°ç¼å°±å¸¦å¤§å®¶è¯¦ç»äºè§£ä¸çªã
äºãä½ä»£ç å ·å¤ä»ä¹ç¹ç¹ï¼
1ã为å¼åå¢éæä¾æ¯æå¾å½¢ååç¼ç æ··ç¨çå·¥å ·
å¼å人åå¯è½å欢æå·¥ç¼ç ï¼å°½ç®¡ä»ä»¬é常并ä¸å欢éæ°å¶é è½®åãå¦æè½æä¸ç§æäºä½¿ç¨ãåè½å¼ºå¤§ä¸å¾å½¢åçæ¹å¼è®¾è®¡ç½é¡µï¼æè éç¨å¾å½¢åæ¹å¼é ç½®æµç¨åæ°ï¼é£ä¹èªç¶ä¼æå¼å人åä¹æ使ç¨å®ãå½ç¶ï¼ä¹æ»ä¼æ人ä¸æ³çè³ä¸éè¦è¿ç±»âæç¨âçå·¥å ·ãå¦æç»å¼å人åèªç±ï¼å¯ä»¥éæ©ç¨ä»ä»¬å欢çJavascriptåºå建该ç½é¡µï¼æè 使ç¨XMLæ件æ¥é ç½®æµç¨åæ°ï¼é£ä¹çæ£å欢ç¼ç çå¼å人åä¹å¯ä»¥ä½¿ç¨è¿ä¸ªä½ä»£ç æ¹æ³ãé¢åå¼å人åçä½ä»£ç å¹³å°ï¼ä¸ºå ·æä¸åå好åæè½æ°´å¹³çææ¯å¢éæä¾äºææçæ¯æã
2ãéè¿å¯æ©å±æ§å®ç°çµæ´»æ§ï¼è¿èæä¾æ´å¤§èªç±
å¼å人ååå ¶ä»äººä¸æ ·é½å欢èªç±ã对äºä¸ä¸ªæ建åºç¨çå®æ´å¹³å°ï¼å¼å人ååºå¯ä»¥ä»ä¸éæ©ä»ä»¬ä» éçç»ä»¶ãä¾å¦ï¼å¼å人åä» éæµç¨å¼æï¼æè æµç¨å¼æåç¨æ·çé¢è®¾è®¡å¨ãå¹³å°åºæä¾å¤ç§çµæ´»æ§ï¼å ¶ä¸å æ¬ï¼éè¿å¯æ©å±æ§æä¾æ©å±åºãæ¡æ¶æå¹³å°å¹¶å¯¹å ¶è¿è¡æ¹è¿çèªç±ãæä¾å°ä¸ä¸ªæå¡æç»ä»¶æ¿æ¢ä¸ºå¦ä¸ä¸ªæå¡æç»ä»¶çèªç±ãæä¾å°å½åå¹³å°ä¸å ¶ä»é解å³æ¹æ¡ç»åçèªç±ã对äºé¢åå¼å人åçä½ä»£ç å¹³å°ï¼ä»ç¶éè¦æä¾æ¯å¦æ¯æç¼ç çèªç±ã
3ãæ¯æå¤å¦ç§å¼åå¢é
å¨ä¼ä¸å®æ½ä¸ï¼å¼åå¢éå·¥ä½çåæ´ç®¡çå·¥å ·è³å ³éè¦ãå¦ä¸æè¿°ï¼å¼åå¢éé常ç±æ¿æ ä¸åèè½ç人åç»æï¼ä¾å¦å端å¼ååå端å¼åï¼ä»ä»¬æ´å¾åäºä½¿ç¨æ··åå¼åæ¹å¼ãä¸äºå¼å人åå¯è½æ´å欢使ç¨å¾å½¢åå·¥å ·å¼åç¨æ·çé¢ï¼èå¦ä¸äºå¼å人åæ´å欢使ç¨HTML5æå¨ç¼ç ï¼è¿æä¸äºäººæ´å欢使ç¨JavaScriptãä½ä»£ç å¹³å°æ¯æå¢éä¸çå¼æåä½ï¼æå©äºè§£å³â缺ä¹å¯ç¨çå¼å人åæ¥æ¯æææéè¦å®æç项ç®âçé®é¢ã
4ã为åä½åæç»éææä¾å·¥å ·
æ°åå转åçå ³é®å¨äºå¿«éæ建æ°åè½ãå¤ææ°åè½çæææ§ï¼å¹¶æ ¹æ®åé¦åå©ç¨ææ·æ¹æ³ååºæ¹è¿ãä½ä»£ç å¹³å°åºè¯¥æ¯æå¼å人å使ç¨ä»ä»¬å欢çæ¹æ³åæ¡æ¶ã
5ãæ¯æå¨ååºå³çåè¯ç¨ãå¦ä¹ 并å享
å¼å人åå½ç¶åå ¶ä»ææ人ä¸æ ·ï¼æ´æ¿æåä¸å°éæ©æç¨å¼åå·¥å ·çè¿ç¨ä¸ãå¼æºåå è´¹å¢å¼æ¨¡å¼å¹³å°å½ç¶æ¯ä¼å çéæ©ãå¼æºäº§åçä¼å¿å¨äºä»»ä½äººé½å¯ä»¥ä¸è½½å¹¶ä¸æ使ç¨ãé常å¼æºäº§åèåå¤å ·æ社åºæ¯æï¼å¯æé®ãåé¦å¹¶å享å®è·µã
6ãçµæ´»éæ©æ¶æåå¯æ©å±æ§
åºç¨æ 论æ¯æ¬å°é¨ç½²ãéè¿SaaSé¨ç½²ï¼è¿æ¯å¨å ¬å ±ãç§æäºææ··åäºä¸é¨ç½²ï¼ä¸ä¸å¼å人åé½å¸æè½å¤æ¸ æ¥å°äºè§£ï¼å°ä½¿ç¨ä½ä»£ç å¹³å°æ建çåºç¨çä½ç³»ç»æãè¿ä½¿å¾ä¸ä¸å¼å人åè½å¤é对æ§è½åæ©å±å¯¹åºç¨è¿è¡å»ºæ¨¡å设计ï¼æ¹ååºç¨ç¨åºç»ä»¶åæå¡é´çéä¿¡ï¼ä»¥åå°ç¨æ·çé¢ä¸æ°æ®åä¸å¡æµç¨å离ãå¼å人åè¥æ³æ建å¯å¨ä¸åç¯å¢ä¸è¿è¡åæ©å±çä¼ä¸åºç¨ï¼éæ¸ æ°äºè§£å ·æå¯æ©å±åè½åèªç±ç¼ç çä½ç³»æ¶æï¼è¿è³å ³éè¦ã
7ãçé±
å¦ææ¨æ¯å¼å管ç软件ç»èªå·±ä½¿ç¨çç¨æ·ï¼å½æ¨éè¦è½¯ä»¶çæ¶åï¼éè¦å级软件çæ¶åï¼ä¸éè¦åæ¾è½¯ä»¶å¼ååï¼èªå·±å°±å¯ä»¥å®æãè¿æ ·ï¼æ¨å°±åä¹ä¸ç¨æ¯ä»å¤§éç软件å¼åè´¹ç¨ï¼ç»´æ¤è´¹ç¨ï¼å级费ç¨äºãèä¸ï¼ç®æ(jadbp)ä½ä»£ç å¼åå¹³å°æ¯ä¸æ¬¡è´ä¹°ç»èº«å¯ä»¥ä½¿ç¨çï¼ä¹å°±æ¯è¯´ï¼æ¨æ°¸è¿ä¸ç¨åè±é±å»æ¾äººå¼å软件äº,ä»é¿ææ¥è¯´ï¼çä¸æ¥çé±ï¼æ¯ä¸ç¬ä¸è²çè´¹ç¨ã
å¦ææ¨æ¯è½¯ä»¶å¼ååï¼é£ä¹å½æ¨ç»å®¢æ·å¼å管ç软件çæ¶åï¼å°±åä¹ä¸ç¨æå ¥å¤§éçææ¬å¨ç¨åºåã产åç»çãUI设计ä¸é¢äºï¼æ¨åªéè¦æèåºç¡çå¼å人åå°±å¯ä»¥äºï¼å¦æ碰å°é¾é¢ï¼å¹³å°ææä¾ççææ¯æ¯æä¹è½å¸®æ¨è§£å³ã
8ãçæ¶
ç®æ(jadbp)ä½ä»£ç å¼åå¹³å°ï¼éç¹å¨äºâå¿«âã以åå¼åä¸ä¸ªç®¡ç软件çå¨æå¯è½æ¯3个æï¼ç°å¨åªéè¦å 天ï¼å¤§å¤§å°åå°äºå·¥ä½éãåæ¶ï¼å¹³å°è¿å¯ä»¥è®©æ¨æ¹éå°ç产管ç软件ï¼è¿æ ·å°±å¯ä»¥ä¸ç¨å 为项ç®å¤èæè大éåå·¥äºã并ä¸åºäºå¹³å°ï¼å¯ä»¥éæ¶éå°ä¸ºå®¢æ·å级软件ï¼åæçç»´æ¤åå级ææ¬ä¹å¤§å¤§å°åå°ï¼ä»èå¢å æ¶å ¥ã
9ãçå
ç®æ(jadbp)ä½ä»£ç å¼åå¹³å°æ¯ä¸ç§æ°åå¼åå·¥å ·ï¼ç¸æ¯ä¼ ç»çå¼å模å¼ï¼ä¸ä» èçäºææ¬ï¼ä¹è®©ææ¯äººåçè¦æ±éä½äºãä¸äºåºç¡çåè½éææ¯äººåä¹è½è¿è¡é ç½®ï¼ä¸ç¨åå 为代ç èç¦å¿ã
å端ä½ä»£ç æåªäºï¼
å端ä½ä»£ç å¹³å°æ¯ä¸ºäºå éåºç¨ç¨åºå¼åè设计çå·¥å ·ï¼éè¿è¿äºå¹³å°ï¼å¼åè å¯ä»¥å¨ä¸éè¦ç¼å太å¤ä»£ç çæ åµä¸æ建åºç¨ç¨åºåç¨æ·çé¢ã以ä¸æ¯ä¸äºå¸¸è§çå端ä½ä»£ç å¹³å°ï¼\n\n1.AppSheetï¼åºäºGoogleSheetsçä½ä»£ç NoCodeå¹³å°ï¼æå©äºè®©ä¼ä¸ç¨æ·é常容æå°å建èªå®ä¹åºç¨ç¨åºã\n\n2.PowerAppsï¼ç±å¾®è½¯æ¨åºçæ 代ç å¼åå¹³å°ï¼å 许ç¨æ·å¨OfficeåDynamicsä¸å¿«éå建èªå®ä¹åºç¨ç¨åºï¼åæ¶ä¸ç°æç³»ç»åæ°æ®æºéæã\n\n3.Bubbleï¼ä¸ä¸ªèªä¸»ä»£ç æ建SaaSåºç¨ç¨åºçç½ç«ï¼ä½¿éææ¯äººåä¹è½è½»æ¾å°æ建ç¨æ·å好çWebåºç¨ç¨åºã\n\n4.ZohoCreatorï¼ä¸æ¬¾æ¥æå¼ºå¤§å·¥å ·éçå ¨æ å¹³å°ï¼å¯å®ç°å»ºç«åºç¨ç¨åºçé¢ãæµç¨ãå·¥ä½æµãèªå®ä¹å½æ°ä»¥åæå¡éæçåè½ã\n\n5.Mendixï¼ä¸ä¸ªå 许å¼åè åéææ¯äººåå¿«éå建ä¼ä¸çº§åºç¨ç¨åºç跨平å°ä½ä»£ç å¹³å°ï¼å¯ä»¥è¿è¡å¿«éé¨ç½²åéæã\n\n6.OutSystemsï¼ä¸æ¬¾ä½ä»£ç å¹³å°ï¼å 许ä¼ä¸å®¢æ·ä»¥è¾å°ç代ç 产çé«è´¨éæ°ååºç¨ç¨åºï¼å¹¶å¯å°åºç¨ç¨åºèªå¨åå¸å°äºç«¯ã移å¨ç«¯å设å¤ç«¯ã\n\nè¿äºå端ä½ä»£ç å¹³å°è½å¤è®©å¢éåå°é«ææ¬çç¼ç åæè´µçç»´æ¤è´¹ç¨ï¼å¹¶å¿«éæ建åºç¨ç¨åºï¼çªæ¾é度åæççä¼å¿ï¼ä¸ºä¸å¡å¢é¿å¸¦æ¥äºå¹¿æ³çåºç¨ä»·å¼ã
è·ªæ±ä½ä»£ç å¼åæåªäºï¼å¹´å½å 家ä¼ç§ä½ä»£ç å¼åå¹³å°æ±æ»çç¹ï¼
1ãå®æââé¿é
å®ææ¯é¿éå·´å·´èªç çä½ä»£ç åºç¨æ建平å°ï¼å¯æ大æé«å¼åæçãäºå¹´3æä¸çº¿ï¼ç¨æ·å¯ä»¥å¨å¯è§åçé¢ä¸ä»¥æææ½çæ¹å¼ç¼è¾åé 置页é¢ã表ååæµç¨ï¼å¹¶ä¸é®åå¸å°PCåææºç«¯ã
2ãç»ä¿¡Informatââåºç³åä½
ç»ä¿¡Informatæ¯é¢åä¸å¡äººåçä½/é¶ä»£ç å¹³å°ï¼å ·æé«åº¦çµæ´»çâæ°æ®+æé+æµç¨âå¨æä¿¡æ¯ç®¡ç模åï¼ç¨æ·ä¸éè¦ä¾èµä»£ç å¼åï¼å¯ä»¥éè¿èªä¸»é ç½®çæ¹å¼ï¼å¿«éæ建ä¼ä¸è¿è¥æéçå类管çç³»ç»ï¼äº®ç¹æ¯æä¾æ°¸ä¹ å è´¹çè¯ç¨ã
3ãç±éæââç¾åº¦
ç±éææ¯ç¾åº¦æºè½äºæ¨åºçä½ä»£ç å¼åå¹³å°ï¼æ¯æå¤ç§åºç¨é¡µé¢æ建形å¼åæ°æ®æ¥é©³æ¹å¼ï¼æ¢å¯èªå»ºæ°æ®æ¨¡åï¼ä¹å¯çµæ´»æ¥é©³å®¢æ·å·²ææ°æ®æºæ对æ¥å¤é¨APIï¼æ¯ææµ·éåè½ç»ä»¶ï¼å¹¶æ¯æèªå®ä¹ä»£ç ãç³»ç»åéåæ¥å£éé è½åï¼çµæ´»åº¦åª²ç¾ä»£ç å¼åã
4ãè½»èââç½æ
ç½æè½»èæ¯ç½ææ¨åºçä½ä»£ç å¹³å°ï¼ä»¥æ¨¡å驱å¨çæ¹å¼ï¼æ¯æææ½å³å¯æ建ä¸å¡æ¨¡åï¼æµç¨å¼æï¼æ¯æææ½çææ ååä¸å¡æµç¨ãæ¯æå¤å±æ¬¡ãç»ç²åº¦èµäº§å¤ç¨ï¼ä¸æ¬¡å¼åï¼å¤å¤ä½¿ç¨ï¼åºäºäºåçåºåº§ï¼ä¸é®åå¸ï¼èªå¨åé¨ç½²è¿ç»´ã
5ãå¾®æââè ¾è®¯
è ¾è®¯äºå¾®æä½ä»£ç 以äºå¼åä½ä¸ºåºå±æ¯æï¼éè¿è¡ä¸å模æ¿ãææ½å¼ç»ä»¶åå¯è§åé 置快éæ建å¤ç«¯åºç¨ï¼å°ç¨åºãH5ãPCWebåºç¨çï¼ï¼å å»äºä»£ç ç¼åå·¥ä½ï¼åºäºè ¾è®¯ççæé¾ï¼å®å¯ä»¥éæä¼ä¸å¾®ä¿¡ãé¾æ¥è ¾è®¯SaaSçæãå¿«éæ建å°ç¨åºã
6ãIVXå¹³å°ââäºå¨åç§æ
0代ç å¯è§åç¼ç¨å·¥å ·ï¼å¯ä»¥å¿«éçæç½ç«ï¼æ¬æºAPPåå®å ¨éæçâ微信å°ç¨åºâå¼åç¯å¢ãæ¨ä¹å¯ä»¥ç´æ¥çææºä»£ç ã带æ¥äºç¼ç¨æ¹æ³åç¼ç¨è¯è¨çå级ã
7ãæ´»åæ ¼ââè¡èå
æ´»åæ ¼å ·ææ´å¼ºçå¼æ¾æ§åæ©å±è½åï¼å ç½®æ°æ®åºéæãWebAPIéæã串å£éæåç¼ç¨æ©å±è½åï¼å¯ä¸è¿è¡å¨å±åç½çå类软件ã硬件以åææ°çäºèç½æå¡æ ç¼éæï¼ä¸ºæéç°æ软硬件ï¼æ建ä¼ä¸æ°ååå¹³å°æä¾åå®çææ¯ä¿éã
8ãç®éäºââå¸è½¯
ç®éäºæ¯ä¸ä¸ªçµæ´»ä¸æäºä½¿ç¨çåºç¨ç¨åºæ建平å°ï¼å æ¬èªå®ä¹è¡¨åï¼èªå®ä¹æ¥åï¼èªå®ä¹æµç¨å¼æï¼æ¶æ¯æéåå ¶ä»æ¨¡åãæ é代ç ï¼æ¨å¯ä»¥å¿«éèçµæ´»å°æ建ä¸å¡ç®¡çç³»ç»ï¼ä»¥æ»¡è¶³ä¼ä¸ç个æ§å管çã
9ãæéäºââä¸ä¼æé
ç¨æ·ä¸éè¦ä»£ç å¼åå°±è½å¤æ建åºç¨æ·ä½éªä¸ä½³çéå®ãè¿è¥ã人äºãéè´çæ ¸å¿ä¸å¡åºç¨ï¼æéä¼ä¸å é¨æ°æ®ï¼ä¹è½å¤éè¿APIåWebhookåå ¶ä»ç³»ç»å¯¹æ¥ãå¹³å°å çèªå¨åå·¥ä½æµè¿å¯ä»¥å®ç°å®¡æ¹ãå¡«åçæ§å¶æµç¨åä¸å¡èªå¨åï¼å¦æç¨æ·ä¼ä¸ä½¿ç¨ééæä¼ä¸å¾®ä¿¡ï¼ä¹å¯ä»¥å°å¹³å°å æ建çåºç¨ç´æ¥å¯¹æ¥å°å·¥ä½å°ä¸ã
ãäºè¡¨ââä¹é软件
äºè¡¨æ¯ä¸ä¸ªåºäºäºç«¯çé¢åæç»ç¨æ·çä¿¡æ¯ç³»ç»è®¾è®¡ä¸è¿è¡å¹³å°ï¼åºäºWeb表åçæ¦å¿µå¼åçæ建表åçåè½é常快éä¸æäºä½¿ç¨ï¼é¢åä¸å¡ï¼éç¨è¡¨æ ¼å¼ç¼ç¨æ¹æ³ï¼è®¾è®¡è ä¸åéè¦å¦ä¹ ä¼ ç»ä»£ç ç¼ç¨åæ°æ®åºè®¾è®¡ã
ãææäºââä¹ç« ä¿¡æ¯
ææäºæ¯ä¸ä¸ªä½ä»£ç åºç¨ç¨åºå¹³å°ï¼è¯¥å¹³å°å°ä¼ä¸çå端åå端è¿æ¥èµ·æ¥ãå¯ä»¥èªå®ä¹åç§ä¼ä¸åºç¨ç¨åºå¹¶å°å ¶ç¨äºäºå¸æ·ï¼å¹¶ä¸å¯ä»¥å®æ¶å¨çº¿è¿è¡è°æ´ãå¼å人åè¿å¯ä»¥éè¿ä»£ç èªç±å¼åã
ãJePaaSââå¯ç¹ä¼ä¸
JEPaaSæ¯å½å å®ç¨çä½ä»£ç å¿«éå¼åå¹³å°ï¼å ·æå¹´çææ¯æ²æ·ï¼å¯è§åå¼åç¯å¢ï¼ä½ä»£ç ææ¾é ç½®å¼å以åæå ¶ç®åçæä½ï¼å¯ä»¥æ大å°å¸®å©å ¬å¸åå°äººå·¥åæ¶é´ææ¬ã
ãåçéæ¹ââåç软件
åçéæ¹åæ°ç使ç¨é ç½®æ件æ¥æè¿°ä¸å¡æ¨¡ååä¸å¡åè½ãå¼å人ååªéè¦ç¼åç®åçé ç½®æ件å³å¯æ建ä¼ä¸çº§åºç¨ç¨åºãå¯ä»¥éè¿è®¾ç½®åæ°æ¥é ç½®æ°ç¾ä¸ªç³»ç»åè½ã
ãAPICloudââç¨å软件
é¢å ç移å¨åºç¨ç¨åºäºæå¡å¹³å°ä¸ºå¼å人åæä¾äºåç§APPå¼åå·¥å ·ï¼éç¹æ¯ç§»å¨APPå¼åï¼ç§»å¨APPç产çã
ãè½»æµââææ ¡ä¿¡æ¯
å¨çº¿ä¸å¡æµç¨ç³»ç»å¯ä»¥éè¿è½»æµè¿è¡å®å¶ãéè¿äººåï¼æµç¨åæ°æ®ç管çï¼å¢å¼ºä¼ä¸ä»·å¼æµï¼éè¿å¨çº¿åä½ï¼å ±äº«ï¼ä¸å¡æ²éï¼å建âæ°ä¸ä»£âä¼ä¸å¨ææ°æ®åºãå¼åçé¢è¶äºå¹´è½»åã
ãéæ¹ç½è¡¨ââéæ¹æä¹
Excelåºäºè¡¨åçå¼åå·¥å ·ï¼æ为å®å¶çæ°æ®åºåºç¨ç¨åºï¼å¹¶æä¾äºæ éçä¸å¡æ建åºç¨ç¨åºå¹³å°çèªç±ãå¨æ¯å¤©çå®æ½å¨æä¸ï¼Excelå°æ建åºç¨ç¨åºä»¥åæ建å®æ½åæä½éæã
ãClickPaaså¹³å°ââç±æ¹æ¯ç§æ
å´ç»å建è ï¼è¿æ¥å¨åé«å¼ºåº¦åºå±è¿ä¸ä¸ªæ¨¡åå¿«éæ建系ç»ååºç¨ç¨åºã模å驱å¨çå¼åæ¯è®¾è®¡æ¦å¿µï¼å æ¬æ¦å¿µæ¨¡åï¼æ°æ®æ¨¡åï¼é¡µé¢æ¨¡åï¼è¿ç¨æ¨¡åçã
ãJeecgBootââå½ç¬ä¿¡æ¯
JeecgBootæ¯ä¸æ¬¾åºäºBPMçä½ä»£ç 产åï¼æ¯æå¾®æå¡ãåè½å ¨é¢ï¼å¯ä¸é®çæåå端代ç ï¼ç®ååè½ä¹å¯å®å ¨å¨çº¿å®æãæ¢è½å¿«éæé«æçï¼èçç åææ¬ï¼åæ¶åä¸å¤±çµæ´»æ§ã
ãæ°äºââ奥å²
è·é¿éææï¼èé é¿é强å¿åå±ï¼ééåæ级å®å¶æå¡åï¼æä¾è¡¨åãæµç¨å¼æï¼æ¥è¡¨çåè½ã积æ¨å¼åºç¨æ建ï¼åæ¶å ·å¤ä»£ç å¼ååå¤é¨ç³»ç»éæè½åãä¸éééæï¼æ¯æPC端ä¸ç§»å¨ç«¯ä½¿ç¨ã
ãJ2PaaSââåé¼ç§æ
J2PaaSæ¯åé¼ç§æåºäºå¹´ææ¯æ²æ·å项ç®ç»éªèç åï¼æ©å¨å¹´å°±è·å¾å ç¼ç å½å®¶åæä¸å©ï¼ç®åç»è¿5次çæ¬è¿ä»£ï¼è¦ç软件项ç®éæ±åæã设计ãå¼åãæµè¯ãè¿è¡ãç»´æ¤ä¸ç®¡ççå ¨è¿ç¨ãJ2PaaSå¹³å°æ常è§éè¦ç¨åºåå®æçåè½éæå¨æ¡æ¶ä¸ï¼å°è£ 为å大åæ°ï¼å¼å人ååªéå ³æ³¨ä¸å¡é»è¾ï¼é¡µé¢ç»è£ åæµç¨è®¾è®¡çç¸å ³åè½å·²ç»å ç½®å®æï¼æ¯ä¸æ¬¾ä¼ä¸çº§ä½ä»£ç å¹³å°ã
ãå为äºAppCube
åºç¨éæ¹AppCubeï¼ç®ç§°AppCubeï¼æ¯ä¸æ¬¾ä½ä»£ç åºç¨å¼åå¹³å°ï¼æºäºå为åºç¨å¼ååæ°åå转åçå®è·µï¼æä¾äºäºä¸æ ç åãä½ç åãæ¯æå¤ç åçåºç¨å¼å模å¼ï¼å±è½äºææ¯çå¤ææ§ï¼æåäºä¼ä¸å¼åçæçãåæ¶æä¾åºç¨èµäº§çå¼åæ ååå¾®æå¡æ¡æ¶ï¼å©åä¼ä¸ä¸ææ²æ·å¯å¤å¶çå¥ä»¶ï¼å éåºç¨çå®å¶ï¼å¹¶éè¿å¼æ¾ççæï¼å®ç°å¥ä»¶èµäº§çåä¸åç°ã
ãé£ä¹¦å¤ç»´è¡¨æ ¼ââåè
åèè·³å¨é£ä¹¦å¤ç»´è¡¨æ ¼æ¯ä¸æ¬¾ä»¥è¡¨æ ¼ä¸ºåºç¡çæ°ä¸ä»£æçåºç¨ãå®å ·å¤è¡¨æ ¼çè½»çåä¸å¡ç³»ç»ç强大ï¼èåäºå¨çº¿åä½ãä¿¡æ¯ç®¡çåå¯è§åè½åï¼è½å¤èªéåºå¢éæç»´åä¸å¡åå±éæ±ï¼æ¯å ·å¤ä¸ªæ§åè½åçä¸å¡ç®¡çå·¥å ·ã
ãéè¶äºè穹ââéè¶è½¯ä»¶
éè¶äºè穹çå¼åæå¡äºæ¯åºäºéè¶ç¬åç第å代å¨æé¢å模å(KDDM)ï¼å¼åæå¡äºæä¾å¨æå»ºæ¨¡å·¥å ·ï¼æ¯æå¯è§åé ç½®ãä½ä»£ç å¼åï¼è½»æ¾æ建åºäºå¾®æå¡æ¶æçèªå®ä¹åºç¨ã为äºåºç¨(SaaSæå¡)çå¼åãé¨ç½²ãè¿è¡åè¿è¥æä¾ä¸ç³»åæå¡å管çå·¥å ·ï¼æ¶µçå¾®æå¡ç»ä»¶ãå¼åæå¡ãè¿è¡æå¡ãæå¡ç®¡çãAPIæå¡æ¡æ¶ãåºç¨å»ºæ¨¡ãäºæ¯ææå¡ä¸è¿ç»´æå¡çãéè¶äºÂ·è穹å¼åæå¡äºåºäºå¨æé¢å模åæä¾å¨æå»ºæ¨¡å·¥å ·ï¼æ¯æå¯è§åé ç½®ãä½ä»£ç å¼åï¼è½»æ¾æ建åºäºå¾®æå¡æ¶æçèªå®ä¹åºç¨ã
ãæ³å¾®ä½ä»£ç ââæ³å¾®
æ³å¾®ä»¥âç»ç»æéå¼æã建模å¼æãæµç¨å¼æãéæå¼æãå 容å¼æãé¨æ·ä»¥åæ¶æ¯å¼æâç7大å¼æ为æ¯æï¼å¸®å©ç»ç»æé å¼æ¾å ±äº«çä½ä»£ç åºç¨æ建平å°ãå¿«éæ建è½åæ¯æ³å¾®ä½ä»£ç æ建平å°çéè¦ç¹æ§ï¼ç»ç»éè¿åå°å¼æé ç½®æ¹å¼ï¼æææ½å³å¯æ建个æ§ååºç¨åºæ¯ãçµæ´»ç表å设计ãæµç¨æ建åè½ï¼è¿æå¨çº¿è°è¯ãæºè½ä¿®æ¹åè½ï¼è®©åºç¨æ建æ´å æ¹ä¾¿ãæºè½ãæ³å¾®ä½ä»£ç å¹³å°å®ç°äºå é¨ååï¼ç¡®ä¿å é¨æµç¨ãé¨æ·ãææ¡£ãæ°æ®ãè§è²ä¹é´çååå ³èï¼ç¹å»ä»»ä½ä¸ä¸ªå段ï¼å³å¯è¿½æº¯ä¸ä¹ç¸å ³çæ°æ®åå·¥ä½å 容ï¼äºè§£ä¸å¡å ¨è²ãéè¿æ³å¾®ä½ä»£ç ä¸å¡æ建平å°ï¼ç»ç»å¯ä»¥å¨ä¸ä¸ªå¹³å°è¿æ¥ãæ©å±åéæERPãCRMãHRMãSRMçåºç¨ã
ãiGIXââ浪潮
浪潮iGIXä¼ä¸æ°ååè½åå¹³å°ï¼å å«ææ¯ãæ°æ®ãä¸å¡ä¸å¤§ä¸å°ï¼åºäºäºåçææ¯ï¼å¾®æå¡æ¶æï¼èåå¼¹æ§è®¡ç®ãæºè½ç©èã大æ°æ®æ²»çãæºå¨å¦ä¹ ã认ç¥æå¡ãæ°åæ°æ®å¹³å°çåºç¡ææ¯ï¼æä¾ä½ä»£ç å¼åãDevOpsãæ··åäºéæãçæå¼æ¾çåºç¨åæ°å éè½åï¼å ç½®æ°æ®èµäº§ç®¡çä¸ä¸°å¯çæ°æ®æå¡ï¼æç ´æ°æ®å£åï¼å ¨é¢æ´åä¼ä¸æ°æ®èµæºï¼æ建åºäºæ°æ®çåæ°è½åï¼æ²æ·å ±äº«ä¸å¡æå¡ï¼æ建ä¸å¡æå¡è½åã浪潮iGIXæ¯æä¼ä¸ææ¯ãä¸å¡ãæ°æ®ä¸åä¸èååæ°ï¼èµè½ä¼ä¸æ建æ°ååä¸å°ï¼ä¸ºä¼ä¸å»ºç«æ´å ·åæ°çµæ´»çä¸å°ç»ç»æºå¶åä¸å¡æºå¶ï¼ä½¿åå°ä¸å¡æ´ææ·ãæ´å¿«éçéåºå¿«éå¤åçåä¸ç¯å¢ï¼å éä¼ä¸å®ç°æ°åå转åã浪潮iGIXæ¨å¨æé ä¸ä¸ªå®æ´çä¼ä¸åºç¨çæç³»ç»ï¼æ¢æ¯æµªæ½®äºERPGSCloudçåºç¡æ¯æå¹³å°ï¼ä¹æ¯é¢åä¼ä¸ä¿¡æ¯ä¸å¿/å ¬å¸ãåä½ä¼ä¼´ãç¬ç«è½¯ä»¶å¼ååï¼ISVï¼ççæèµè½å¹³å°ï¼æ¿åä¼ä¸æç»çæ°åååæ°è½åã
ãæ鲸äºââçé»çå¨
çé»çå¨æ鲸äºæ¯é¢å çä½ä»£ç åBPMPaaSæå¡åä¹ä¸ï¼äº§ååè½å·²è¦çä½ä»£ç ãæºè½æµç¨ãéæã移å¨ãä¸å¡è§åå¨å çPaaSè½åï¼æ¯ææ°åå转åä¸ååå±çº§å«çè½åè¦æ±ã产åå¸å±ä¸æä¾é¢å大ä¸åç»ç»çAWSPaaSä½ä»£ç å¼åå¹³å°åé¢åæé¿åç»ç»çæ鲸äºä½/æ 代ç äºåºç¨å¹³å°ï¼å¸®å©ç¨æ·å éæ°åå转ååè¿è¥åæ°ãæ æç¨æ·è¦çåå·¥ãéèãæ¿åºãæè²ãçµåé¶å®ãè½æºåå·¥ãå·¥ç¨å»ºççåç´è¡ä¸ãå¹´è·éå±±åå ¬A+è½®æç¥æèµï¼å ±å»ºææ¡£åä½+ä½ä»£ç PaaSåçæï¼æ»¡è¶³ä¸åè§æ¨¡ãä¸åé¢åç¨æ·å¯¹æ°åå转åçéæ±ã
ãèåä½ä»£ç ââèå软件
èå软件æ¯å½å ç¥åçç¥è¯ç®¡çãååOAæå¡åçãå¨åååå ¬å¸åºåé åºè¾é«çç¥å度ï¼ä¹æ¯ææ©ä¸äºèç½TOBçæèµ°çæè¿çèçååååãå¹´èå软件ä¸ééè¾¾ææç¥åä½ï¼ç´è³å¹´éé注èµï¼èå软件ä¸ééçæå¼å§ç´§å¯ç»åï¼ç±äºå ¶è¿å¾ç大é大客æ·é¡¹ç®ç»éªå产åæå¡ç积累ï¼èå软件å¨åºäºå¤§å®¢æ·çâè¡¨æ ¼+æµç¨+æ°æ®âçä½ä»£ç æå¡é¢åæçä¸å®çå åä¼å¿ï¼å½¢æäºå¯¹ééçæçå¸åºè¡¥å ãèå软件水桶å产åç¹å¾æ¯è¾çªåºï¼ä½ä¸ºä¸ä¸ªèçååOAåçï¼èå软件å°ä½ä»£ç ä½ä¸ºè½åä¹ä¸è¾åºç»å®¢æ·çå¾åæ´æµï¼å¦ä½å®ä½/平衡âä½ä»£ç âç产ååè·¯å¾å°æ¯èåçææä¹ä¸ã
ãä¼ä¼´äºââä¼ä¼´æºæ §
ä¼ä¼´äºï¼æ¯ç±æç年以ä¸è®ºå软件å¼ååä¸å°ä¼ä¸æå¡ç»éªçåDiscuz!å¢éæé çï¼åç»âä¼ä¼´äºè¡¨æ ¼âãâä¼ä¼´åå ¬âï¼éæ¥å级为ä¸ä¸ªä¸ºä¼ä¸ç»è¥æå¡çæ°æ®å¯è§åå¹³å°ï¼ä¸ºä¼ä¸çå ¨æµç¨è¿è¥ç®¡çä¸ç»è¥æ ¸ç®æä¾æ´ä½è§£å³æ¹æ¡ãéè¿å¼ºå¤§çæ°æ®åºå¼æåæéæ¶æï¼æé å¯çµæ´»å®å¶çæµç¨å¼æä¸å¤§æ°æ®åæå¼æï¼é åä¸å®¶çº§ç»è¥é¡¾é®ä¸æå¡ï¼æé å ¨æµç¨ãå®æ¶å¯è§åçç»è¥æ ¸ç®ä½ç³»ï¼ä¸ºä¼ä¸æ建起ä¸ä¸åå¿çç»è¥ä¼ä¼´å ³ç³»ï¼å®ç°åå·¥æç»æé¿ãç»ç»æç»åé©ãä¸ç»©æç»æé«ã
ãè½»éªå µââéç°ä»£
è½»éªå µä½ä»£ç å¼åå¹³å°ï¼HussarLCDPï¼æ¯ä¸æ¬¾éç°ä»£å»ºè®¾äºåä½å¹´çå¼åå¹³å°äº§åã使ç¨è¯¥äº§åå¯æ éç¼ç ï¼é¶ä»£ç ï¼æéè¿å°é代ç å°±å¯ä»¥å¿«éçæé«ä½éªçåºç¨ç¨åºãå¯è§ç¼ç¨ï¼æè§æå¾ï¼å¯è§åUIå¸å±æ¹æ¡ï¼æè§å³æå¾çå¼åä½éªï¼ä¸ç²¾äºä¸å¡æ°æ®ä¸å°çä¿¡æ¯èåçæ°æ®å¯è§åï¼éè¿å¾å½¢çé¢è½»æ¾æ建ä¸ä¸çå¯è§ååºç¨ï¼æ»¡è¶³æ¨æ¥å¸¸ä¸å¡çæ§ãè°åº¦ãä¼å±æ¼ç¤ºçå¤åºæ¯éæ±ã
ãæ°ç¿æ°æ®ââå京æ°ç¿
æ°ç¿æ°æ®æ¯ä¸å®¶æ°æ®é©±å¨çä¼ä¸çº§æ 代ç 软件平å°åï¼ä»¥â让人人尽享æ°æ®ä»·å¼â为ä¼ä¸æ¿æ¯ï¼â让天ä¸æ°æ®å¿«é使ç¨â为使å½ï¼å¤å¹´æ¥éè¿èªèº«ææ¯ä¼å¿å åèå大æ°æ®åè¡ä¸ä¸å¡ç§¯ç´¯ï¼å¸®å©ä¼ä¸æ大åæ°æ®ä»·å¼ï¼ä»¥åæ°ç软件å¼å模å¼ï¼å¼å¯è½¯ä»¶æºè½å¶é æ°é©å½ï¼ä¸ºä¸å½ä¼ä¸çæ°æºå转åæéãå ¶ç¬æçåå模åï¼è½å¤å®æ´è¦çæ°æ®ãåæã管çãè¿è¥å个é¢åï¼æ¶å客æ·è¡¨åãæµç¨ãæç´¢ãéæãåæçå ¨ä¸å¡çå½å¨æã
个平å°å ¨é¨çç¹å®æ¯ï¼å¸æ对大家ææ帮å©å~
ä½ä»£ç å¼åå¹³å°æä»ä¹ç¹ç¹ä½ä»£ç å¼åå¹³å°æ¯ä¸ç§ä½¿ç¨å°éç代ç å°±å¯ä»¥å¿«éæ建åºç¨ç³»ç»çå¼åå¹³å°ã
ä½ä»£ç å¹³å°çç¹ç¹ï¼?1.éä½äºå¼åé¨æ§ï¼ä½ä»£ç å¼åå¹³å°æ¯ç¨å°éãç®åç代ç å°±å¯ä»¥å¿«éçæåºç¨ç¨åºçå¼åå¹³å°ã
2ãæé«å¼åæçï¼ä½ä»£ç å¼åå¹³å°è¿è½éè¿æ¨¡ååï¼å¯è§åï¼ææ½çæ¹å¼åå°äºå¼åè¿ç¨ä¸åç¹ç代ç ç¼åï¼å¤§å¤§ç¼©çäºç³»ç»å¼åæéçæ¶é´ï¼ä¸ä» æ¯å¸®å©å¼åè æé«äºå·¥ä½æçã
3ãçµæ´»æ§é«ï¼ä½ä»£ç å¼åå¹³å°ä¸ºå¼å人åæä¾äºå¯ä»¥çµæ´»çæ¹å¨ç©ºé´ï¼æ¯æå¼å人åæè ä¸å¡åç¨æ¨¡åæ建æè ä½ä»£ç çæ¹æ³å¨ä»»ææ¶é´è¿è¡èªä¸»ä¿®æ¹ï¼ä»èææ解å³ä¼ä¸å¨åå±ä¸éå°çéæ±åæ´ã
4ãéä½å¼åææ¬ï¼ä¸ä½ä»£ç å¼åå¹³å°éç¨å°±æ¯ä½ä»£ç 模å¼è¿è¡å¼åï¼æå³çä¸ä¸å®è¦é ä¸ä¸äººåæè½æä½ï¼åªè¦æä¸ç¹å°±è½è¿ éä¸æï¼å æ¤è¿ç¬äººå·¥è±éå°±ä¼éä½å¾å¤ã
5ãå ¼å®¹æ§å¼ºåæå±æ§å¼ºï¼ä½ä»£ç å¼åå¹³å°åä¸ä» è½å ¼å®¹æ建ä¼ä¸ä¸ååºæ¯çç³»ç»ï¼è¿è½æä¾web?APIæ¥å£ä¸ç¬¬ä¸æ¹ç³»ç»è¿è¡å¯¹æ¥ï¼ä»èè½å¸®å©ä¼ä¸è¿è¡ç³»ç»ç管ç以åèµæºç管çã
网站二次开发是什么有关网站开发需要的技术
有关网站开发需要的技术,网站二次开发是什么。网站二次开发是源码什么
我为你讲解网站二次开发是什么和有关网站开发需要的技术的教程内容,很不错的什名方法小知识,建议收藏哦!成本成本
很多人在早期建设了当时较为流行的核算核算唐明皇源码商城网站进行使用,但随着市场的源码变化以及消费者年龄层的变化,以往的什名商城形式已经不能帮助商家获得新用户了,这时就需要商家将网站进行二次开发或是成本成本重新建设网站。那今天就来看看,核算核算 商城网站建设二次开发需要多久?难度怎么样?
一,源码开发周期
因为二次开发是什名在现有的已经完成源码的基础上,再根据对源码构架、成本成本功能、核算核算核心内容、源码逻辑性的剖析,开展功能拓展,相对来说,开发周期会比较短。
但如果商家找的开发商技术不够专业或是网站本身的问题过多的话,也会让二次开发所需的时间延长。
二,开发成本
开发成本一般包含时间成本费和人工成本,定制开发必须彼此沟通交流,用时较长,人工成本较高,最后的开发成本也较高。
二次开发同样需要商家和开发商进行沟通,因此开发所需要的成本还是要根据开发的内容来核算。
三,二次开发难吗
二次开发,是对现有网站开展定制和修改,对功能进行拓展,做到目前商家想要的功能。一般来说,原系统软件的核心不会有太大的变动。
如果只是单纯加上新功能的话,那它的难度一般都不大,但商家要是想更改以往的网站结构的话,就会比较耗时耗精力,难度也会加大。
总的来说,简单的二次开发难度并不大,但商家要想将自己的网站改造的更符合市场需求的话,还是建议各位重新进行商城网站建设。想要了解更多相关内容,可以咨询移动云商城的c 大型实战项目源码客服。
上述就是网站二次开发是什么 跟 有关网站开发需要的技术的具体介绍,希望大家能喜欢!
开发一个app要多少钱?
开发一个app大概需要花多少钱APP开发分原生APP开发和在线制作,我们来看下这两种都需要多少费用吧。
1、原生APP开发做软件致电壹伍扒壹壹叁叁驷柒驷驷(定制开发)
第一,生产成本:所谓的生产实际上是确定需求(产品)、设计、研发和测试,这个生命周期所涉及的过程,主要成本包括研发人力成本、硬件成本及第三方的服务等等。
事实上,技术投入最大的就是人力成本,这一成本取决于产品规模、成熟度、区域经济和岗位人员的能力水平等等。
我们知道,一个优秀的研发团队必须至少拥有一名项目经理、一名产品经理、一名UI设计师、一名IOS开发工程师和一名Android开发工程师。还有测试工程师、运维人员等等,这些人的月薪基本都在K以上。
简单核算,每个月至少万元的人员固定支出,还不包括办公和管理成本,一般来说,一个APP项目至少两个月以上,人员成本可想而知。
第二,功能需求:没有清晰明了的需求,是不会有合理的价格的,也会造成项目方和开发方产生纠纷,项目方觉得花了钱最终开发的东西却不是他想要的。
不管什么类型的APP开发,其价格都是按照功能需求而定的,功能的多少,功能的复杂程度是决定一个APP价格的主要因素。所有在开发APP之前,确立明确的产品需求是非常必要的。
第三,版本:APP版本比较多,现在APP软件开发类型主要分为IOS开发和Andriod开发为主,因为人们主要使用的瘟疫公司在线源码手机就是苹果手机和安卓手机,所以,一般开发APP都需要开发两个版本,开发成本当然较高了。
第四,开发周期:APP开发周期长,同样一个功能,APP实现起来比较困难,需要的代码量远远高于网站开发,所以导致开发周期变长,从而导致成本变高。
sap有多少模块?
SAP 一套全面的系统包含 个模块,它们分别是 ABAP、BASIS、CRM、CO、FI、MM、PLM、PM、PP、WM、BW、HR、PS、QM、SD。
SAP MM(物料管理模块)是其中最为常用的一个模块,它涵盖了物料管理的全过程,并与财务、生产、销售、成本等模块紧密相连。主要功能包括采购、库房与库存管理、MRP、供应商评价等。
SAP SD(销售与分销模块)则涉及销售计划、询价报价、订单管理、运输发货、发票等的管理,同时能够有效管理分销网络。
SAP FI(财务会计模块)提供了应收、应付、总账、合并、地下城引擎源码投资、基金、现金管理等功能,这些功能可以根据各分支机构的需求进行调整,并支持多语言,科目设置也遵循国家规定的标准。
SAP CO(管理会计模块)包括利润及成本中心、产品成本、项目会计、获利分析等功能,不仅能够控制成本,还能帮助高级管理人员作出决策或制定规划。
SAP PS(项目管理模块)拥有项目计划、预算、能力计划、资源管理、结果分析等功能,帮助企业更有效地管理项目。
SAP QM(质量管理模块)提供了质量计划、质量检测、质量控制、质量文档等功能,确保产品质量。
SAP PP(生产计划模块)实现工厂数据、生产计划、MRP、能力计划、成本核算等管理,帮助企业降低库存,提高效率,同时实现生产流程的自动化连接,避免生产脱节,确保生产准时交货。
SAP PM(工厂维修模块)提供维护及检测计划、交易所处理、历史数据、报告分析等功能,提高设备维护效率。
SAP BW(商务智能集成化组件)为 SAP 数据和非 SAP 数据的采集、存储、分析和管理提供集成的平台,帮助企业快速响应市场变化,增强竞争力。
SAP ABAP(SAP 开发模块)作为 SAP 的应用编程语言,用于编写 SAP 产品的源代码,是react native电商源码挑战不同顾问岗位的基础。
SAP HANA(SAP 大数据)是一个软件结合体,具备高性能的数据查询功能,允许企业对大量实时业务数据进行查询和分析,优化 SAP 技术应用,改变人们的思考、规划和工作方式。
最全|《人月神话》书摘,看这一篇就够了
什么叫“人月神话”?人是程序员,月是时间,如果1人干个月等同于人干1个月,那就成神话。
焦油坑在过去几十年的大型系统开发中,很多大型动物在其中剧烈挣扎,他们中大多数开发出了可运行的系统,但只有一小部分项目满足了目标、时间进度和预算的要求。团队无论是大型还是小型,无论是复杂还是精简,都淹没在这个焦油坑中。
人月神话缺乏合理的时间进度是造成项目滞后的最主要原因,比其他所有因素加起来影响还大。成本核算的估计技术,混淆了工作量和项目进展。人月是危险和带有欺骗性的神话,因为它暗示人员数量和时间是可以相互替换的。
向软件项目中增派人手从三个方面增加了项目必要的总体工作量:关于进度安排,我的经验是为1/3计划、1/6编码、1/4构件测试以及1/4系统测试。Brook法则:向进度落后的项目中增加人手,只会使进度更加落后。特别需要指出的是,不为系统测试安排足够的时间简直就是一场灾难。
外科手术队伍小型、精干队伍是最好的--尽可能的少。需要协作沟通的人员的数量影响着开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试)。Mills建议大型项目的每一个部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而并非一拥而上。一位首席程序员、类似于外科手术队伍的团队架构提供了一种方法--既能获得由少数头脑产生的产品完整性,又能得到多位协助人员的总体生产率,还彻底地减少了沟通的工作量。
贵族专制、民主政治和系统设计为了反映一系列连贯的设计思路,宁可省略一些不规则的特性和改进,也不提倡独立和无法整合的系统,哪怕它们其实包含着许多很好的设计。同工作的水平分割相比,垂直划分从根本上大大减少了劳动量,结果是使交流彻底地简化,概念完整性得到大幅提高。
蛇添足一种普遍倾向是过分地设计第二个系统,向系统添加很多修饰功能和想法,它们曾在第一个系统中被小心谨慎地推迟了。实际情况中,尽早交流和持续沟通能使结构师有较好的成本意识,以及使开发人员获得对设计的信心,并且不会混淆各自的责任分工。面对估算过高的难题,结构师有两个选择:削减设计或者建议成本更低的实现方法--挑战估算的结果。
贯彻执行即使是大型的设计团队,设计结果也必须由一个或两个人来完成,以确保这些决定是一致的。允许体系结构师对实现人员的询问做出电话应答解释是非常重要的,并且必须进行日志记录和整理发布。对于存有疑问的实现人员,应鼓励他们打电话询问相应的结构师,而不是一边自行猜测一边工作,这是一项很基本的措施。
为什么巴比伦塔会失败?巴比伦塔项目的失败是因为缺乏交流,以及交流的结果--组织。“因为左手不知道右手在做什么,从而进度灾难、功能的不合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效输入和输出结果用法上的约定,而因此给其他部分引发了BUG。
团队应该以尽可能多的方式进行相互之间的交流:非正式、常规项目会议,会上进行简要的技术陈述、共享的正式项目工作手册。举行常规项目会议,会议中,团队一个接一个地进行简要的技术陈述。这种方式非常有用,能澄清成百上千的细小误解。制定项目工作手册,并实时记录变更:首先,必须在页面上标记发生改变的文本,例如,使用页边上的竖线标记每行变化的文字。第二,分发的变更页附带独立的总结性文字,对变更的重要性以及批注进行记录。
编码大约只占了问题的六分之一左右,编码估计或者比率的错误可能会导致不合理的荒谬结果。对常用编程语句而言,生产率似乎是固定的。这个固定的生产率包括了编程中需要注释,并可能存在错误的情况。使用适当的高级语言,编程的生产率可以提高5倍。
在大型的团队中,各个小组倾向于不断地局部优化,以满足自己的目标,而较少考虑队用户的整体影响。这种方向性的问题是大型项目的主要危险。为了满足目标,每个人都在局部优化自己的程序,很少会有人停下来,考虑一下对客户的整体影响。培养开发人员从系统整体出发、面向用户的态度是软件编程管理人员最重要的职能。
如果要制造一台机器,哪些是关键的文档呢?目标:定义待满足的目标和需要,定义迫切需要的资源、约束和优先级。首先,书面记录决策是必要的。只有记录下来,分歧才会明朗,矛盾才会突出。项目经理常常会不断发现,许多理应被普遍认同的策略,完全不为团队的一些成员所知。每个文档本身就可以作为检查列表或者数据库。项目经理的基本职责是使每个人都向着相同的方向前进。项目经理的主要日常工作是沟通,而不是做出决定;文档使各项计划和决策在整个团队范围内得到交流。通过周期性的回顾,他能清楚项目所处的状态,以及哪些需要重点进行更改和调整。
对于大多数项目,第一个开发的系统并不合用。它可能太慢、太大,而且难以使用,或者三者兼而有之。用户的实际需要和用户感觉会随着程序的构建、测试和使用而变化。软件产品易于掌握的特性和不可见性,导致了它的构建人员(特别容易)面临着永恒的需求变更。目标上(和开发策略上)的一些正常变化无可避免,事先为它们做准备总比假设它们不会出现要好得多。为变更计划组织结构当系统发生变化时,管理结构也需要进行调整。只要管理人员和技术人才的天赋允许,老板必须对他们的能力培养给予极大的关注,使管理人员和技术人才具有互换性。
每个编程人员也保留着编辑器、排序、内存信息转储、磁盘实用程序等工具。这种方法对软件项目来说是愚蠢的。首先,项目的关键问题是沟通,个性化的工具妨碍--而不是促进沟通。交互式编程MIT的Multics项目的成果之一,是它对软件编程系统开发的贡献。在那些系统编程所关注的方面,Multics(以及后续系统,IBM的TSS)和其他交互式计算机系统在概念上有很大的不同:多个级别上数据和程序的共享和保护,可延伸的库管理,以及协助终端用户共同开发的设施。我确信在某些应用上,批处理系统决不会被交互式系统所取代。
许许多多的失败完全源于那些产品未精确定义的地方。细致的功能定义、详细的规格说明、规范化的功能描述说明以及这些方法的实施,大大减少了系统中必须查找的bug数量。在编写任何代码之前,规格说明必须提交给测试小组,以详细地检查说明的完整性和明确性。他将程序开发划分成体系结构设计、设计实现和物理编码实现,每个步骤可以使用自顶向下的方法很好地实现。好的自顶向下设计从几个方面避免了bug。首先,清晰的结构和表达方式更容易对需求和模块功能进行精确的描述。其次,模块分割和模块独立性避免了系统级的bug。另外,细节的隐藏使结构上的缺陷更加容易识别。最后,设计在每个精化步骤的层次上是可以测试的,所以测试可以尽早开始,并且每个步骤的重点可以放在合适的级别上。一些糟糕的系统往往就是试图挽救一个基础很差的设计,而对它添加了很多表面装饰般的补丁。自顶向下的方法减少了这样的企图。
当人们听到某个项目的进度发生了灾难性偏离时,可能会认为项目一定是遭受了一系列重大灾难。然而,通常灾祸来自白蚁的肆虐,而不是龙卷风的侵袭。里程碑的选择只有一个原则,那就是,里程碑必须是具体的、特定的、可度量的事件,能够进行清晰定义。例如:"结构师和实现人员签字认可的规格说明","%源代码编制完成,纸带打孔完成并输入到磁盘库","测试通过了所有的测试用例"。如果里程碑很模糊,老板就常常会得到一份与实际情况不符的报告。慢性进度偏离是士气杀手。如果在某项活动开始之前就着手估计,并且每两周进行一次仔细的修订,根据实际情况动态调整时间。当里程碑没有正确反映损失的时间,并对人们形成误导,以致事态无法挽回的时候,它会彻底碾碎小组的士气。保持进度透明可见一线经理的利益和老板的利益是内在冲突的。一线经理担心如果汇报了问题,老板会采取行动,这些行动会取代经理的作用,降低自己的威信,搞乱了其他计划。所以,只要项目经理认为自己可以独立解决问题,他就不会告诉老板。有两种掀开毯子把污垢展现在老板面前的方法,它们必须都被采用。
产品复杂度:由于复杂度,团队成员之间的沟通非常困难,导致了产品瑕疵、成本超支和进度延迟;由于复杂度,列举和理解所有可能的状态十分困难,影响了产品的可靠性;由于函数的复杂度,函数调用变得困难,导致程序难以使用;由于结构性复杂度,程序难以在不产生副作用的情况下用新函数扩充;由于结构性复杂度,造成很多安全机制状态上的不可见性。复杂度不仅仅导致技术上的困难,还引发了很多管理上的问题。它使全面理解问题变得困难,从而妨碍了概念上的完整性;它使所有离散出口难以寻找和控制;它引起了大量学习和理解上的负担,使开发慢慢演变成了一场灾难。
软件可变性:软件实体经常会遭受到持续的变更压力。现实工作中,经常发生两种情况。当人们发现软件很有用时,会在原有应用范围的边界,或者在超越边界的情况下使用软件。功能扩展的压力主要来自那些喜欢基本功能,又对软件提出了很多新用法的用户们。其次,软件一定是在某种计算机硬件平台上开发,成功软件的生命期通常比当初的计算机硬件平台要长。即使不是更换计算机,则有可能是换新型号的磁盘、显示器或者打印机。软件必须与各种新生事物保持一致。
软件不可见性软件是不可见的和无法可视化的。其中的秘密就是逐步发育成长,而不是一次性搭建。软件开发是一件棘手的事情,并不会有魔术般的解决方案,现在是从业者研究和分析革命性进展的时刻,而不是等待或希望它的出现。现在有可能可以在软件生产率上取得逐步的进展,而不是等待不可能到来的大突破。