自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何從零開(kāi)始為自己的小型企業(yè)開(kāi)發(fā)移動(dòng)應(yīng)用

譯文
移動(dòng)開(kāi)發(fā)
我們創(chuàng)建的第一款應(yīng)用程序不太可能既復(fù)雜又高效,事實(shí)上這樣的成果只會(huì)出自經(jīng)驗(yàn)豐富的開(kāi)發(fā)老鳥(niǎo)的精心雕琢。不過(guò)只要經(jīng)過(guò)嚴(yán)密規(guī)劃與認(rèn)真投入,大家仍然可以拿出一套對(duì)企業(yè)及客戶(hù)切實(shí)有益的應(yīng)用產(chǎn)品。

[[85278]]

【2013年9月11日 51CTO外電頭條】時(shí)至今日,創(chuàng)建屬于自己的定制化應(yīng)用程序從未變得如此便捷。在網(wǎng)絡(luò)、桌面以及移動(dòng)開(kāi)發(fā)智能框架的廣泛普及之下,任何心態(tài)良好、認(rèn)真專(zhuān)注且目的明確的用戶(hù)都能夠在幾乎任何平臺(tái)上建立起極具時(shí)代感且由數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序。然而,一旦將話(huà)題轉(zhuǎn)向編程領(lǐng)域,問(wèn)題就會(huì)變得更復(fù)雜、更難以打理。在今天的文章中,我們就來(lái)一起探討如何從零開(kāi)始創(chuàng)始應(yīng)用程序。

首先,先提幾點(diǎn)注意事項(xiàng):編程并不適合每個(gè)人。盡管如今編程工作已經(jīng)變得比較容易上手,但大家仍然不能指望隨便找?guī)讉€(gè)人就能開(kāi)發(fā)出世界一流、具備專(zhuān)業(yè)品質(zhì)的應(yīng)用程序。因此,在樹(shù)立遠(yuǎn)大的技術(shù)抱負(fù)之前,大家需要先花幾個(gè)月來(lái)深入學(xué)習(xí)一門(mén)語(yǔ)言及框架,這樣才能踏踏實(shí)實(shí)地為未來(lái)的工作打好基礎(chǔ)。

另外,我們創(chuàng)建的第一款應(yīng)用程序不太可能既復(fù)雜又高效,事實(shí)上這樣的成果只會(huì)出自經(jīng)驗(yàn)豐富的開(kāi)發(fā)老鳥(niǎo)的精心雕琢。不過(guò)只要經(jīng)過(guò)嚴(yán)密規(guī)劃與認(rèn)真投入,大家仍然可以拿出一套對(duì)企業(yè)及客戶(hù)切實(shí)有益的應(yīng)用產(chǎn)品。正如我們?cè)诤笪闹袑⒗^續(xù)討論的,開(kāi)發(fā)是一個(gè)不斷循環(huán)往復(fù)的過(guò)程,只要下決心走上這條道路、我們永遠(yuǎn)有機(jī)會(huì)對(duì)自己的應(yīng)用加以改進(jìn)與完善。

我們?cè)搶?duì)代碼做出怎樣的預(yù)期

軟件開(kāi)發(fā)的核心在于流程,而在代碼及應(yīng)用創(chuàng)建方面,我們的學(xué)習(xí)流程應(yīng)該包含以下幾個(gè)步驟:

1.選擇一種語(yǔ)言及框架。

2.接受相關(guān)培訓(xùn)。

3.規(guī)劃自己的應(yīng)用程序。

4.開(kāi)發(fā)出一套MVP(即小型可用產(chǎn)品)。

5.重復(fù)以上過(guò)程!

挺簡(jiǎn)單的,對(duì)吧?其實(shí)事實(shí)并不復(fù)雜。下面我們來(lái)看第一步。

選擇一種編程語(yǔ)言

也許應(yīng)用程序開(kāi)發(fā)過(guò)程中最讓人難以決定的,就是到底選擇哪一種編程語(yǔ)言以及與之相對(duì)應(yīng)的框架。每種語(yǔ)言都有自己的優(yōu)勢(shì)與缺點(diǎn),而更讓初學(xué)者感到頭痛的是,根據(jù)特定語(yǔ)言特征實(shí)現(xiàn)對(duì)應(yīng)編程目的的舊觀(guān)念現(xiàn)在已經(jīng)不再起效。總而言之,如今我們很難根據(jù)明確的開(kāi)發(fā)目的為自己選擇最合適的語(yǔ)言類(lèi)型。舉例來(lái)說(shuō),JavaScript原本是一款專(zhuān)門(mén)作用于瀏覽器的前端語(yǔ)言,但目前它卻被廣泛用于瀏覽器后端。

由于篇幅所限,我們無(wú)法在本文中充分評(píng)述各種語(yǔ)言與框架的細(xì)節(jié)信息,但希望下面這份簡(jiǎn)明扼要的清單能為大家提供一點(diǎn)指導(dǎo):

  • JavaScript – 一種針對(duì)前端/UI開(kāi)發(fā)的基本腳本語(yǔ)言,但目前正作為后端語(yǔ)言而日益普及。
  • Python – 一種針對(duì)桌面與Web應(yīng)用的多功能語(yǔ)言,在腳本方面的表現(xiàn)也同樣出色。
  • PHP – 一種人氣很高的Web應(yīng)用服務(wù)器端語(yǔ)言,對(duì)以WordPress為代表的博客平臺(tái)來(lái)說(shuō)至關(guān)重要。
  • Ruby – 一種易于學(xué)習(xí)的Web應(yīng)用程序常用語(yǔ)言。
  • Java – 專(zhuān)門(mén)用于Android應(yīng)用程序開(kāi)發(fā)的常用多功能語(yǔ)言。
  • Objective-C – 一種以C語(yǔ)言為基礎(chǔ)的通用型語(yǔ)言,也是iOS應(yīng)用程序的核心語(yǔ)言。

需要強(qiáng)調(diào)的是,基本接受一種給定語(yǔ)言并不代表我們無(wú)法在開(kāi)發(fā)過(guò)程中涉及其它實(shí)現(xiàn)方案。由于目前切實(shí)可用的多平臺(tái)框架越來(lái)越多,大家完全可以利用任何一種流行語(yǔ)言為iPhone或者Android設(shè)備開(kāi)發(fā)應(yīng)用程序。在這一領(lǐng)域,最顯著的例子就是PhoneGap——它能夠?qū)⑽覀兊腍TML、CSS以及JavaScript代碼編譯成可以為iOS、Android或者Windows Phone所接受的本地應(yīng)用。

在真正決定應(yīng)用程序的主要語(yǔ)言之前,先要對(duì)各類(lèi)不同編程語(yǔ)言擁有一定程度的了解。

目前,大多數(shù)應(yīng)用程序開(kāi)發(fā)流程存在于開(kāi)發(fā)框架當(dāng)中——所謂框架是指一套軟件平臺(tái),用于組織代碼并為應(yīng)用程序提供結(jié)構(gòu),并以自動(dòng)化方式處理大部分日常任務(wù)。當(dāng)下比較常見(jiàn)的例子包括Ruby編程語(yǔ)言的Rails框架、JavaScript的Ember框架以及Python語(yǔ)言的Django框架。由于框架會(huì)從著眼于全局的角度、以實(shí)際設(shè)計(jì)原則為基礎(chǔ)進(jìn)行應(yīng)用創(chuàng)建,因此我們必須首先掌握一定程度的腳本語(yǔ)言知識(shí)。也就是說(shuō),即使大家決定專(zhuān)注于Ruby或者Python等核心編程語(yǔ)言,也必須要對(duì)HTML、CSS以及JavaScript或者CoffeeScript有所了解(CoffeeScript是一種獨(dú)立且比較簡(jiǎn)單的語(yǔ)言,能夠以極佳效果將代碼編譯為JavaScript形式)。(通常情況下,無(wú)論實(shí)際使用的是哪種語(yǔ)言及框架,大家都必須掌握HTML及CSS的基礎(chǔ)技能。)

在接觸主要語(yǔ)言之前、先以練手的方式嘗試幾種其它編程語(yǔ)言也是不錯(cuò)的辦法。我建議大家在Codecademy之類(lèi)的學(xué)習(xí)網(wǎng)站上先認(rèn)真閱讀幾篇教程文章,看看自己對(duì)哪種語(yǔ)言的設(shè)計(jì)思路最感興趣。

積累一些開(kāi)發(fā)經(jīng)驗(yàn)

一旦確定了自己的學(xué)習(xí)目標(biāo),接下來(lái)就是著手進(jìn)行實(shí)踐培訓(xùn)。目前我們已經(jīng)擁有不計(jì)其數(shù)的開(kāi)發(fā)培訓(xùn)課程可供選擇,形式從現(xiàn)場(chǎng)課堂到在線(xiàn)課程乃至指導(dǎo)性書(shū)籍無(wú)所不包。如果大家不知道如何選擇,那么三種全用也是沒(méi)問(wèn)題的。

我們最好在選擇老師并投入時(shí)間與金錢(qián)之前,先花點(diǎn)精力觀(guān)看在線(xiàn)教學(xué)視頻。Code School、Codecademy以及Treehouse等網(wǎng)站都提供大量關(guān)于編程語(yǔ)言及開(kāi)發(fā)框架的資料,而且收費(fèi)非常低廉。Codecademy的免費(fèi)課程是我們初次接觸編程而又無(wú)需花費(fèi)培訓(xùn)預(yù)算的最佳起點(diǎn)。作為我個(gè)人最喜愛(ài)的網(wǎng)站,Treehouse為編碼初學(xué)者帶來(lái)極為精彩的課程與指南信息,從最基礎(chǔ)的高級(jí)項(xiàng)目創(chuàng)建到頗為復(fù)雜的社交媒體功能應(yīng)有盡有。

在面對(duì)面的教學(xué)課程方面,位于舊金山的Marakana以及位于丹佛的Pragmatic Studio都是大家學(xué)習(xí)開(kāi)發(fā)技能的好選擇,這兩家機(jī)構(gòu)提供的一周入門(mén)課程要價(jià)2500美元,具體金額取決于課程類(lèi)型。一周入門(mén)課程主要專(zhuān)注一種編程語(yǔ)言或者框架,例如iOS或者Android移動(dòng)平臺(tái)以及Web領(lǐng)域的HTML 5或者Ruby on Rails。一般說(shuō)來(lái),我們會(huì)在為時(shí)一周的課程中初步積累到關(guān)于某些簡(jiǎn)單項(xiàng)目的開(kāi)發(fā)經(jīng)驗(yàn),例如如何創(chuàng)建博客、Twitter或者待辦事項(xiàng)應(yīng)用。

相對(duì)于在線(xiàn)授課,現(xiàn)場(chǎng)課堂最大的優(yōu)勢(shì)在于允許我們提出問(wèn)題并與經(jīng)驗(yàn)豐富的開(kāi)發(fā)者進(jìn)行直接互動(dòng),老師們能夠?yàn)榇蠹医鉀Q入門(mén)編碼者們可能面臨的最大挑戰(zhàn)。不過(guò)這里需要強(qiáng)調(diào)一點(diǎn):這類(lèi)課堂上的大部分學(xué)生都是從業(yè)已久的開(kāi)發(fā)人員,他們參與課程的目的是為了提升自己的專(zhuān)業(yè)技能——也就是說(shuō)后來(lái)者很可能跟不上這種過(guò)快的學(xué)習(xí)節(jié)奏。因此,請(qǐng)?jiān)谡介_(kāi)始學(xué)習(xí)之前花點(diǎn)時(shí)間,幫助自己熟悉關(guān)于語(yǔ)言或者框架的基礎(chǔ)知識(shí)。

當(dāng)然,更為全面的新兵訓(xùn)練課程也是存在的,例如Dev Bootcamp,其中每組學(xué)生都將獲得長(zhǎng)達(dá)九周的開(kāi)發(fā)主題培訓(xùn)。不過(guò)相對(duì)較長(zhǎng)的課時(shí)安排、有限的招生名額以及高達(dá)12000美元以上的要價(jià)讓小型企業(yè)的DIY愛(ài)好者們感到有些難以承受。

大家最好能在新手程序員們實(shí)際進(jìn)行生產(chǎn)開(kāi)發(fā)之前,為他們準(zhǔn)備一個(gè)月左右的學(xué)習(xí)時(shí)間。但即使是這樣,我們也不能指望短短三十天就培養(yǎng)出能夠“指哪打哪”的真正開(kāi)發(fā)人員。相反,大家可能會(huì)在掌握了基本編程技能后,仍然弄不清楚要如何把自己的知識(shí)儲(chǔ)備成功轉(zhuǎn)化為切實(shí)可用的應(yīng)用程序。

進(jìn)行應(yīng)用程序規(guī)劃

在完成了為期數(shù)周的培訓(xùn)之后,大家應(yīng)該已經(jīng)在語(yǔ)言及框架的基礎(chǔ)知識(shí)方面擁有一定程度的了解,現(xiàn)在就結(jié)合自己的知識(shí)進(jìn)行應(yīng)用程序開(kāi)發(fā)規(guī)劃。根據(jù)我們?cè)谡n堂上、書(shū)本里以及實(shí)踐指導(dǎo)中學(xué)到的內(nèi)容,大家可以將概念與實(shí)際需求、底層數(shù)據(jù)結(jié)構(gòu)以及界面設(shè)計(jì)等工作進(jìn)行一一對(duì)應(yīng)。

開(kāi)發(fā)方法本身就是個(gè)完整的主題,而且很多專(zhuān)業(yè)開(kāi)發(fā)人員都會(huì)以狂熱的精神對(duì)其加以研究。(舉例來(lái)說(shuō),我們網(wǎng)站的CTO就對(duì)敏捷開(kāi)發(fā)概念很有話(huà)說(shuō)……)但這并非毫無(wú)道理,因?yàn)殄e(cuò)誤的開(kāi)發(fā)流程很可能毀掉一個(gè)本來(lái)極具潛力的好點(diǎn)子。在本文中,我將開(kāi)發(fā)流程中的重點(diǎn)總結(jié)為敏捷宣言(專(zhuān)注于快速開(kāi)發(fā)業(yè)務(wù)軟件)以及針對(duì)現(xiàn)有業(yè)務(wù)的改進(jìn)與迭代機(jī)制。不過(guò)在剛剛接觸DIY編程領(lǐng)域時(shí),大家沒(méi)必要過(guò)分注重開(kāi)發(fā)方法。先將著眼點(diǎn)放在建立一款切實(shí)可用的應(yīng)用程序上,并依靠開(kāi)發(fā)成果解決自己的實(shí)際問(wèn)題,這就已經(jīng)初步達(dá)到目的了。

[[85279]]

要快速開(kāi)發(fā)出一款業(yè)務(wù)應(yīng)用,首先將必須考慮的因素限制在四到五項(xiàng)(例如圖中所示的安全性、可用性、功能性以及設(shè)計(jì)性),其它項(xiàng)目則可在未來(lái)的迭代進(jìn)程中逐一實(shí)現(xiàn)。

應(yīng)用程序規(guī)劃過(guò)程當(dāng)然是越簡(jiǎn)單越好,我們不需要?jiǎng)?chuàng)建出實(shí)際成果來(lái)加以驗(yàn)證。首先,明確定義新應(yīng)用程序的存在目的是什么。保持它的簡(jiǎn)潔性與功能性。假設(shè)“客戶(hù)能夠自主使用預(yù)置服務(wù)”而非“通過(guò)自助服務(wù)功能簡(jiǎn)化與客戶(hù)間的互動(dòng)”——前者描述的只是一種操作流程,我們完全可以在自己的手機(jī)中通過(guò)代碼加以實(shí)現(xiàn);而后者描述的卻是一種抽象概念,缺乏明確的開(kāi)發(fā)方向。

當(dāng)然,大家可能希望應(yīng)用程序的功能不要太過(guò)單一。為此,我們需要?dú)w納應(yīng)用程序需要處理的所有事務(wù),并從特定用戶(hù)的角度將其匯總為一份單獨(dú)列表。請(qǐng)務(wù)必專(zhuān)注于操作的實(shí)際結(jié)果,而不要把精力分散到界面等相對(duì)不那么重要的方面。另外,不要過(guò)早關(guān)注細(xì)節(jié),例如如何觸控或者點(diǎn)擊功能按鈕。像“點(diǎn)觸一個(gè)按鈕以完成預(yù)約”這類(lèi)描述不要出現(xiàn)在前期規(guī)劃當(dāng)中,因?yàn)檫@樣會(huì)扼殺應(yīng)用程序的發(fā)散性思路。總之,名單上要多列主干、少說(shuō)廢話(huà)。

清單匯總完成后,再對(duì)內(nèi)容進(jìn)行一次篩選。舉例來(lái)說(shuō),如果第一次列出了十項(xiàng)重點(diǎn),那么嘗試將重點(diǎn)數(shù)量縮減為四項(xiàng)或者五項(xiàng),并把其它內(nèi)容歸為在今后的迭代工作中需要考慮的條目。需要在應(yīng)用中實(shí)現(xiàn)的重點(diǎn)越少,大家就能更快開(kāi)發(fā)出自己的成果。

到現(xiàn)在,我們就該考慮如何設(shè)定設(shè)計(jì)原則了。首先為應(yīng)用程序界面勾勒一份草圖,思考用戶(hù)在這些界面中的操作體驗(yàn)。我們?cè)撛陂_(kāi)始屏幕中設(shè)定哪些元素、用以引導(dǎo)用戶(hù)正確使用自己的產(chǎn)品?在經(jīng)過(guò)一系列操作后,屏幕上又會(huì)顯示哪些內(nèi)容?大家不妨繪制出操作流程的樣圖,并通過(guò)簡(jiǎn)單的線(xiàn)框注釋來(lái)指導(dǎo)自己的設(shè)計(jì)過(guò)程。LucidChart與Proto.io這類(lèi)工具能夠快速生成非常實(shí)用的模型與圖表。

迭代化開(kāi)發(fā)

基本規(guī)劃完成之后,大家就可以開(kāi)始思考如何將思路轉(zhuǎn)化為切實(shí)可用的軟件。一般來(lái)說(shuō),我們需要花費(fèi)數(shù)個(gè)星期來(lái)研究應(yīng)用程序中的各類(lèi)功能性方案,再用幾周時(shí)間開(kāi)發(fā)出一套基礎(chǔ)且功能有限的應(yīng)用程序雛形版本。行業(yè)中一般稱(chēng)之為MVP,或者叫最簡(jiǎn)可用產(chǎn)品。它代表著一個(gè)新的起點(diǎn),我們能夠以此為基礎(chǔ)通過(guò)迭代對(duì)各項(xiàng)功能加以完善。

隨著應(yīng)用程序漸具規(guī)模,大家可能希望來(lái)自外部的開(kāi)發(fā)人員從客觀(guān)角度檢查自己的工作成果、解答開(kāi)發(fā)過(guò)程中出現(xiàn)的問(wèn)題并提供解決方案。許多自由職業(yè)型開(kāi)發(fā)人員樂(lè)于為大家提供他們的專(zhuān)業(yè)見(jiàn)解,而且僅按小時(shí)收費(fèi)而無(wú)需為其提供全職崗位,相信各位能從他們的專(zhuān)業(yè)知識(shí)中收獲良多。

可以肯定的是,軟件開(kāi)發(fā)工作并不簡(jiǎn)單。因?yàn)槿绻y度不高,那么每個(gè)人都會(huì)插上一腳了。不過(guò)如果大家擁有積極的工作心態(tài)外加有效的針對(duì)性培訓(xùn),并在執(zhí)行過(guò)程中認(rèn)真研究并加以規(guī)劃,那么完全有機(jī)會(huì)通過(guò)DIY方式培養(yǎng)自己的技能水平、改進(jìn)自己的應(yīng)用程序并最終搞定整個(gè)新項(xiàng)目。

責(zé)任編輯:徐川 來(lái)源: 51CTO
相關(guān)推薦

2020-11-09 11:56:49

HarmonyOS

2020-09-28 15:13:04

鴻蒙

2014-06-17 15:44:47

OpenStackApache 2.0

2011-06-03 10:31:25

小企業(yè)虛擬化

2014-06-04 13:33:03

OpenStack云平臺(tái)

2019-10-08 10:12:26

安全黑客攻擊數(shù)據(jù)

2023-12-05 13:10:00

ReflexPython

2013-07-10 10:38:48

JavaScript框

2013-07-11 10:03:36

JavaScript框架

2013-09-30 10:01:19

中小企業(yè)關(guān)鍵業(yè)務(wù)應(yīng)用

2011-06-13 09:04:50

小型企業(yè)Windows

2011-04-29 10:46:32

iPhone開(kāi)發(fā)入門(mén)iPhoneiOS

2011-09-22 09:12:11

小型企業(yè)云計(jì)算安全

2011-04-06 15:55:50

開(kāi)發(fā)webOS程序webOS

2021-02-02 16:02:17

物聯(lián)網(wǎng)運(yùn)營(yíng)商技術(shù)

2012-08-31 11:28:07

惠普動(dòng)能服務(wù)器NonStop NS2

2010-08-25 17:45:21

2025-02-17 07:20:00

Flutter 3Flutter開(kāi)發(fā)

2011-09-06 09:06:24

VMware View小型企業(yè)

2017-04-29 10:14:31

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)