国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
angular項(xiàng)目總結(jié)

一眨眼,快三個(gè)月沒有寫博客了。一直在為自己沒有寫博客而懊惱,忙過這段時(shí)間,好好總結(jié)一下。

 

新項(xiàng)目主要是自己一個(gè)人在寫,先搭建了一個(gè)初步的架構(gòu),用了我并不熟悉的angular,這個(gè)過程中,慢慢也熟悉了angular,同時(shí)也優(yōu)化了自己的項(xiàng)目架構(gòu)。

 

這兩個(gè)多月里一直處在高強(qiáng)度的工作中,項(xiàng)目是一個(gè)面向用戶的創(chuàng)作中心,涉及到數(shù)據(jù)、語音、圖片、地圖等等。

地圖上的交互很復(fù)雜,由于項(xiàng)目需要還會(huì)同時(shí)用兩種地圖,一個(gè)谷歌一個(gè)高德,谷歌主要面向國(guó)外數(shù)據(jù),高德面向國(guó)內(nèi)數(shù)據(jù),

兩個(gè)地圖可以任意切換,但是內(nèi)容都要保持一致,并且最好能夠相互補(bǔ)充,地圖開發(fā)商的接口不一樣,很多邏輯的實(shí)現(xiàn)方法也會(huì)不一樣,

邏輯雖然是通的,但是適應(yīng)每一個(gè)地圖的代碼卻略有不同。這是這個(gè)項(xiàng)目比較難的一個(gè)地方。

 

使用angular后,前后端進(jìn)行了分離,前端需要去調(diào)用后端接口,后端接口比較抽象,常常不能一次性拿到自己想要的數(shù)據(jù),請(qǐng)求一個(gè)接口獲取到內(nèi)容之后往往還需要根據(jù)當(dāng)前數(shù)據(jù),

再次去請(qǐng)求另一個(gè)接口,前后端分離之后對(duì)前端的要求其實(shí)就更高了,同步明明可以很簡(jiǎn)單就解決的問題,異步之后就需要花費(fèi)更多的邏輯去處理。

 

現(xiàn)在想想這個(gè)項(xiàng)目開發(fā)過程中會(huì)發(fā)生很多事情:

  •   理解需求、打通數(shù)據(jù)邏輯、和產(chǎn)品交流,質(zhì)疑產(chǎn)品設(shè)計(jì)的問題(修正一些問題或者還是回去照著產(chǎn)品的做)
  •   畫娃娃圖(用例)、初步技術(shù)設(shè)計(jì),搭建開發(fā)架構(gòu)、定好主要接口
  •   看原型圖、看設(shè)計(jì)稿相互對(duì)比、提出疑問、糾正錯(cuò)誤、提出前端方面的建議
  •   和后端協(xié)商數(shù)據(jù)庫(kù)結(jié)構(gòu)、顧忌以后的需求擴(kuò)展、商量數(shù)據(jù)細(xì)節(jié)、爭(zhēng)論命名(其實(shí)英文都不好 O(∩_∩)O )
  •      被壓縮開發(fā)時(shí)間,表示不滿,然后抗議無效
  •      調(diào)整優(yōu)化前端架構(gòu)、維護(hù)webfont、找插件或者寫插件  
  •      熟悉angular,踩過那些坑
  •      后端和我都是第一次用cors跨域資源共享,折騰了一遍
  •      開發(fā):時(shí)間緊、功能多、難度大、每天到五點(diǎn)的時(shí)候就感覺全身疼痛,寫不動(dòng)了
  •      每天:加一個(gè)小時(shí)班、加兩個(gè)小時(shí)班、最后快提測(cè)時(shí)到同事家加班
  •    項(xiàng)目bug多、開發(fā)過程中忽略很多細(xì)節(jié),實(shí)際已經(jīng)把測(cè)試時(shí)間也算進(jìn)開發(fā)時(shí)間里,先粗再細(xì),也算一種討巧和無奈吧
  •      在壓縮的時(shí)間中挑戰(zhàn)自我,然后失敗,上線延期/(ㄒoㄒ)/~~
  •      負(fù)面情緒猛漲然后慢慢瀉下,自己經(jīng)歷了痛苦、收獲了經(jīng)驗(yàn)、看到了成長(zhǎng)

 

說說項(xiàng)目架構(gòu):

    angular + browserify + gulp + bower + less

   

    angular 主要使用了擴(kuò)展: angular-ui-router、angular-bootstrap

    browserify管理打包js

    bower管理三方庫(kù)

    gulp自動(dòng)化構(gòu)建項(xiàng)目

 

項(xiàng)目根目錄如下:

    

 build文件夾是構(gòu)建工具最后生成的部署代碼,src是所有源代碼,temp只是一些臨時(shí)文件

   

源碼根目錄如下:

    

 

app.js注冊(cè)了根模塊:

                    angular.module("zmng", [    "ui.router",    "ui.bootstrap",    "ngAnimate",        "zmng.main",    "zmng.test"]);require("./config.js");    require('./common/js/resize.js');

引入src目錄下的config.js、http.js,最后browserify會(huì)編譯app.js,gulp輸出到 build->app.js

 

common:

存有所有img資源,

一些全局js放在js文件夾(例如:我放置了環(huán)境配置和配合rem的resize),

三方的css庫(kù)、webfont和自己抽象的css,最后會(huì)把所有的less引入到app.less中,編譯為一個(gè)app.css到build

 

 modules:

所有業(yè)務(wù)按模塊寫在modules里:

 

modules.less

modules目錄下有一個(gè)modules.less,所有模塊里的less會(huì)被引入到modules.less里,common的app.less會(huì)引入此文件

modules.less

//layout@import "layout/less/header.less";@import "layout/less/footer.less";@import "layout/less/content.less";// main@import "main/less/index.less";// test@import "test/less/main.less";

 

js&html:

js代碼按控制器、指令和服務(wù)劃分,控制器控制頁面和邏輯,公用的頁面或者獨(dú)立的插件抽離為指令,服務(wù)寫后臺(tái)請(qǐng)求接口

 

每個(gè)模塊下同樣有app.js,用來注冊(cè)模塊和引入當(dāng)前模塊下所有的js,最后編譯成一個(gè)文件

config控制路由

 

templates管理模塊html,最后被打包到build(less會(huì)被打包到common的app.css里),如下:

 

test模塊的app.js生成到build->modules->test->js->test.js,生成出的js我命名為模塊的名字test.js,這樣是為了在入口html引入js資源的時(shí)候,不想結(jié)尾看到的全是app.js,最終如下:

    <script type="text/javascript" src="build/app.js"></script>        <script type="text/javascript" src="build/modules/layout/js/layout.js"></script>    <script type="text/javascript" src="build/modules/main/js/main.js"></script>    <script type="text/javascript" src="build/modules/test/js/test.js"></script>

這樣看起來比較清晰

 

架構(gòu)代碼已經(jīng)開源到github,說這么多也許看代碼更容易讓人明白: github地址 https://github.com/zimv/zmNgFrameWork

 

一些踩過的小坑和建議:

  • 寫路由的方法有很多,鏈接后面帶參數(shù)如果用 url : "/test/:Id" 這種寫法,鏈接后面如果沒有參數(shù),也必須要加上/,如:  /test/,

    寫成 /test  的話就會(huì)找不到路由。還是建議用 url : "/test?id"   這種寫法

  • 用ui-bootstrap的modal插件時(shí)候,要把當(dāng)前控制器的作用域傳給modal,否則,在沒有關(guān)閉當(dāng)前modal時(shí),頁面跳轉(zhuǎn),modal就不會(huì)自動(dòng)關(guān)閉
  • 常常通過隔離作用域來達(dá)到作用域間的獨(dú)立,也會(huì)用到@、=、&的方式相互調(diào)用數(shù)據(jù),但是一旦數(shù)據(jù)多了,寫起來就會(huì)很麻煩,

    建議可以直接把當(dāng)前scope傳給另一個(gè)作用域,比如:

  angular.module("zmng")        .directive("test", test);    function test() {        return {            restrict: "AE",            replace : true,            scope : {                testScope: "="            },            link : function() {                  $scope.testScope = $scope;            }
} }

      這樣代碼要干凈很多,擴(kuò)展也不用再多寫參數(shù)

  • 用了定時(shí)器,記得加上$scope.$apply()
  • 某一個(gè)頁面功能太復(fù)雜,可以把一些子功能抽離成指令并且不要隔離scope,這樣代碼就不會(huì)全部揉在一起
  • 小心重復(fù)提交數(shù)據(jù),為按鈕做重復(fù)提交限制
  • 為避免select出現(xiàn)空白選項(xiàng),為select設(shè)置一個(gè)空值,顯示請(qǐng)選擇,初始化的時(shí)候把ng-model的值設(shè)置為空字符串

 

結(jié)語:

     做項(xiàng)目成長(zhǎng)的才會(huì)更快,但不一定成長(zhǎng)的更好

     高壓下容易產(chǎn)生負(fù)能量需要去訴說去釋放,需要時(shí)刻告訴自己,自己的目標(biāo)是什么

     在寫代碼時(shí),架構(gòu)做過幾次調(diào)整,沒有最合適的架構(gòu),只有不斷調(diào)整才能適應(yīng)需求

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
AngularJS開發(fā)指南04:核心概覽 | AngularJS中文社區(qū)
一步一步弄懂a(chǎn)ngularJS基礎(chǔ)
AngularJS1:directive和controller如何通信
說說NG里的單元測(cè)試
angularJS directive詳解
Angular開發(fā)中的注意事項(xiàng)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服