1. 程式人生 > >物聯網專案開發(理論)

物聯網專案開發(理論)

理論知識:軟體的生命週期等
軟體工程組成三要素:軟體工程方法、軟體工程工具、軟體工程過程

軟體生命週期:分析-設計-編碼測試(白盒測試-單元測試)-執行維護
生命週期模型:瀑布模型-原型模型–螺旋模型(迭代遞增)等。

瀑布模型:開發完畢才能看到系統結果–適合需求非常確定的開發;不利於產品的後期演化升級
原型模型:快速實現系統的初步模型,符合人的認知和思維過程;適合不確定的需求軟體開發
螺旋模型:引入了風險分析,綜合了瀑布模型和增量模型的特點

軟體開發工具:PowerDesign-ER圖、Rational Rose–Uml圖

Junit:
使用junit進行單元測試:eclipse會防止方法汙染(防止錯誤的擴散)而對測試的幾個方法使用不同的執行緒
方法呼叫順序(使用@test標註):Before-Test-After
junit的執行機制:BeforeClass和AfterClass是Static方法–非同步執行緒

assertEquals(4,mo.sub(8,4));
//sub是一個執行減法操作的方法

資料庫:cmd命令下執行sqlplus/ as sysdba 進入超級使用者;DBA使用者下建立新使用者並賦給許可權等,之後使用使用者帳號登陸建立表結構等。

PS:select table_name ,tablespace_name from user_tables;
table_name為表名 ,tablespace_name為該表使用的表空間名

原始碼版本管理工具:Git、SVN

專案開發(非部署):單個jar新增Variable;多個jar需要新增User Libernary;
專案部署時則需要把所有jar新增到WEB-INF下的lib中

使用註解來標註實體和表的對映關係
PS:專案中query可寫在Dao層或實體上,具體區別不大,修改時程式碼修改位置不同(引數繫結的query、多型的query)

//設計模式:模版與回撥
public List<?> hibnernateTemplate{
    private SessionFactoey sf;
        public void query (hibernnateCallback hc){
        Session ses = sf.getCurrentSession();
        Query  q = hc.createQuery(ses);
        retorm q.list;
    }
}
public
interface hibernnateCallback{ Query createQuery(Session ses); }

instances:例項

Spring:統一的異常架構來描述異常資訊

設計模式:會話門面模式(只提供介面,介面中有很多方法)

三層結構一般的做法:Entity–Dao介面 –Dao實現–Service介面–Service中注入Dao

alt+shift+s出現之後 c是無參構造方法 o是帶參構造方法 r是getset s是tostring
ctrl+shift+o 自動導包

@Autowired和@Resource兩個註解的區別:
1、@Autowired預設按照byType方式進行bean匹配,@Resource預設按照byName方式進行bean匹配
2、@Autowired是Spring的註解,@Resource是J2EE的註解,這個看一下匯入註解的時候這兩個註解的包名就一清二楚了。
Spring屬於第三方的,J2EE是Java自己的東西,因此,建議使用@Resource註解,以減少程式碼和Spring之間的耦合。

Spring註解的使用:沒有用註解寫spring配置檔案的時候,會在spring配置檔案中定義Dao層的bean,
這樣我們在service層中,寫setDao方法,就可以直接通過介面呼叫Dao層,
用了註解寫法後,在配置檔案中不用再寫Dao層的bean,
只需要在Dao實現類中加入
@Repository
public Class TestDaoImpl(){}

在service層定義
@Autowired
private TestDao testDao;
不需要再寫setDao方法就可以通過介面呼叫Dao了

在Service層加入
@service
public Class TestService(){}
這樣action中直接寫
@Autowired
private TestService testService;
就可以呼叫service層

在Action層加入
@Controller
public Class TestAction(){}
就不需要在配置檔案中定義action的bean

@requestMapping是spring-mvc的東西,
以前我們用struts2, 需要配置檔案定義 action的名字,
在瀏覽器中寫 XXX.do才能訪問action的方法

使用了srping-mvc後,在action的方法中加入
@controller
public class TestAction(){
@requestMapping(“XXX.do”)
public String findAll(){
……………..
}
}
這樣,就不需要struts了,直接在瀏覽器中輸入XXX.do就可以訪問findAll方法了

Spring IOC:1.物件建立(
1.直接呼叫有/無參構造方法;
2.工廠方法(class=“….” factorymethod=”…”);
3.工廠設計模式:工廠型別的建立方法(factorybean=”…” factorymethod=“….”))
2.依賴注入:外部的成員變數 自己不去呼叫,需要其他來呼叫它本身
注入的方式:手動(通過構造方法,通過set方法,查詢方法的注入)、自動(byname、bytype、constrator等)
@[email protected]@Controller

RPC:遠端過程呼叫

jsp中使用js進行合法性檢測(非空驗證等)

<table>
        ==================查詢
        <s:form action="queryStoreInfoAction" method="POST"
            onsubmit="return checkform(this);">
            <!-- <%=request.getContextPath()%>代表的是當前專案,/*.action代表的是web.xml中配置的url-pattern -->
            <s:textfield id="sid" name="sid" label="庫房ID" />
            <s:submit value="查詢" />
        </s:form>
        <script type="text/javascript">
            function checkform(queryStoreInfoAction) {
                if (queryStoreInfoAction.sid.value == ""
                        || queryStoreInfoAction.sid.value >= 7){
                    alert("請輸入合法庫房ID");
                    return false;
                }
                return true;
            }
        </script>
        倉庫ID:
        <s:property value="store.storeID" />
        </br> 倉庫名稱:
        <s:property value="store.storeName" />
        </br> 備註:
        <s:property value="store.storeNote" />
        </br> 最後編輯時間:
        <s:property value="store.storeEditTime" />

        <br>==================更新
        </br>

        <s:form action="storeOptAction" method="POST">
            <s:textfield name="storeID" label="庫房ID" />
            <s:textfield name="storeName" label="庫房名稱" />
            <s:textfield name="storeNote" label="描述" />
            <s:submit value="儲存" />
            <s:reset value="重置" />
            <!-- 用actionmessage標籤輸出action中addActionMessage()儲存的資訊 -->
            <!-- store.setStoreEditTime(new Date());
            assetsBiz.updateStore(store);
            this.addActionMessage("更新成功");
            -->
            <s:actionmessage/>
        </s:form>
    </table>

Ajax:XMLHttpRequest+js+css
document–DOM物件

瀏覽器無法訪問WebContent中的內容:動態web專案eclipse部署上去的是WebContent

Ajax程式設計:初始化XMLHttpRequest(分瀏覽器)–註冊回撥onreadystatechange(寫回調:判斷狀態為4或者其他–響應程式碼為200–處理結果–responseText或responseTestXML)–傳送請求

Http方法get和post的對比:
Http方法get和post的對比

Hibenrnate中List永遠不為null,只有size=0的情況

//負載均衡:web前裝一個Ngnix,自動分配到web上 
//快取記憶體: Redis 
//成員變數需要序列化(加鎖解鎖)防止資源爭奪,保證執行緒安全
//JSTL中的EL訪問的是attribute(屬性名字相同時需要用作用域約束)

相關推薦

聯網專案開發理論

理論知識:軟體的生命週期等 軟體工程組成三要素:軟體工程方法、軟體工程工具、軟體工程過程 軟體生命週期:分析-設計-編碼測試(白盒測試-單元測試)-執行維護 生命週期模型:瀑布模型-原型模型–螺旋模型(迭代遞增)等。 瀑布模型:開發完畢才能看到系統結果–

國內聯網平臺初探 ——機智雲IoT聯網雲服務平臺及智能硬件自助開發平臺

str gen smart 權限 頁面 方式 手動 開始 udp 平臺定位 機智雲平臺是致力於物聯網、智能硬件雲服務的開放平臺。平臺提供了從定義產品、設備端開發調試、應用開發、產測、運營管理等覆蓋智能硬件接入到運營管理全生命周期服務的能力。 機智雲平臺為開發者提供了自助式

國內聯網平臺初探 ——機智雲IoT聯網雲服務平臺及智慧硬體自助開發平臺

平臺定位 機智雲平臺是致力於物聯網、智慧硬體雲服務的開放平臺。平臺提供了從定義產品、裝置端開發除錯、應用開發、產測、運營管理等覆蓋智慧硬體接入到運營管理全生命週期服務的能力。機智雲平臺為開發者提供了自助式智慧硬體開發工具與開放的雲端服務。通過傻瓜化的工具、不斷增強的SDK與API服務能力最大限度降低了物聯網

國內聯網平臺初探 ——京東微聯

不同 http 多模塊 配置 ini .com 角色 概念 oot 平臺定位 京東微聯是京東針對未來智慧生活而全力打造的智能平臺,其目標是幫助智能硬件廠家打造體驗更好的智能硬件產品,為消費者提供一站式的智能產品體驗。 通過微聯App,用戶可以對不同品牌智能產品進行遠

國內聯網平臺初探 ——阿裏雲聯網套件

black pps 協議方法 size 20px 安全認證 合法性 時間 payload 架構 數據通道 為設備和物聯網應用程序提供發布和接收消息的安全通道。數據通道目前支持CCP協議和MQTT協議。 用戶可以基於CCP協議實現Pub/Sub異步通信,也可以使用遠程調

國外聯網平臺初探 ——Electric Imp

工作 基於 數據分析 運行 模型 固件 設備配置 私有雲 和數 公司背景 Electric Imp成立於2011年,公司設立在美國加利福尼亞州洛斯阿爾托斯和英國劍橋 公司投資者包括:富士康技術集團、PTI創投、Rampart資本、Redpoint創投 定位 E

國內聯網平臺初探:中移聯網開放平臺OneNet

nco 國內 聯網 申請 nonce 行數 即時通信 不同 初始 平臺定位 OneNET是中移物聯網有限公司搭建的開放、共贏設備雲平臺,為各種跨平臺物聯網應用、行業解決方案,提供簡便的雲端接入、存儲、計算和展現,快速打造物聯網產品應用,降低開發成本。 IoT PaaS

ESP8266攜手聯網Tlink平臺

測試原理 經過前面四講的內容,相信很多人已經準備好了ESP8266模組,在Tlink平臺註冊了自己的賬號。下面就分享一下,到底怎麼把資料上傳到物聯網Tlink平臺。這裡只是做一個拋磚引玉的講解,其實和其他平臺差不多,廢話不多說,看下面的圖。 最後要做的事就是上面的內容。

聯網識別技術初級

物聯網:就是指將各種資訊 感測裝置與網際網路結合起來而形成的一個巨大網路。(萬物相連) 物聯網的三大特徵:全面感知,可靠傳遞,智慧處理 物聯網的架構分為:應用層、網路層、感知層、編碼層 物聯網的常用裝置有:RFID裝置、感測器、視訊監控裝置、GPS RFID:是R

應用SuperIOSIO和開源跨平臺聯網框架ServerSuperIOSSIO構建系統的整體方案

SSIO的更新       在SSIO上增加了UDP通訊方式,可以到Github上下載原始碼。在原來的專案中,遠端的裝置與中心站的資料互動並沒有使用過UDP方式。這種短連線的通訊鏈路,不容易維護,主要體現在:(1)持續的資料互動能力。(2)對現場裝置進行長時間的維護和校準。(3)SSIO要協調裝置、

通過網路抓包學習聯網流行協議MQTT

MQTT (Message Queue Telemetry Transport),翻譯成中文遙測傳輸協議,其主要提供訂閱/釋出模式,更為簡約、輕量,易於使用,針對受限環境(頻寬低、網路延遲高、網路通訊不穩定),屬於物聯網(Internet of Thing)的一個傳輸協議。設

小作坊式專案開發

我記得去年我第一次坐需求調研的時候,當時很是誠惶誠恐,希望把一切工作做得盡善盡美,可是迫於能力和經驗的不足,處處碰壁。 比如在面對客戶提出一些超出合同範圍的需求的時候,我認死理,我解釋說,合同不包含此項工作任務,我無法給您承諾,還跟客戶爭論半天。 我記得有一次在會上局長就跟

netty聯網實踐之

           最近接了個智慧手錶專案,正好學習實踐下netty            對於netty的I/O模型,設計儘量不在在EventLoopGroup執行緒中處理耗時業務邏輯,這裡我引入了MQ(rabbitMQ),netty服務端在接收到客戶端指令以後,不作

小作坊式專案開發

1、在青海出差近兩個月了,這第二個月基本上閒著,因為我們公司商務部(好像就一人)採購的裝置未到,其實公司裝置已經到了一部分了,包括機櫃、伺服器、磁碟陣列,可是缺了交換機、PDU,系統整合的人員千里迢迢從長沙奔赴青海,事情搞了一半停止了,因為裝置未到齊,於是公司又把他們調回長

Tlink聯網平臺使用

1.對於協議的選擇 不知道大家還記不記得這張圖,我讓你們選擇協議的時候,選擇TCP協議。 這裡的協議比較多,對於後面的幾個協議我也不太懂,這裡說一下http協議。 2.HTTP協議初探 在Tlink平臺的官網幫助中心,這裡放了很多API的開放介面,下面也有

聯網倉儲系統—環境搭建—交叉編譯工具鏈和 Bootloader 移植

一、專案環境介紹:    1、Ubuntu 12.04 發行版    2、GCC 交叉編譯工具鏈(版本 4.5.1)    3、U-boot-2010.03    4、FS4412 開發板(ARM Co

資料分析在聯網的應用

資料分析這個行業在於現在來說的話已經不算是一個新興的行業,在很多年前就有了資料分析這個概念,只不過是這幾年來資訊發展誕生的物聯網、雲端計算以及大資料的出現讓資料分析逐漸地走進的人們的生活,不斷地被人們多瞭解。那麼資料分析在物聯網上的應用都有哪些呢?下面就由小編為大家解答一下這個問題。 首先給大家說一下雲

資料分析在聯網的應用

在上一篇文章中我們給大家講述了資料分析中的雲-邊-端架構,但是資料分析在物聯網中的應用遠遠不止這些,還有很多的內容,我們在這篇文章中給大家詳細地介紹一下剩餘的內容。 這篇文章重點給大家說一說IOT中的知識圖譜。那麼什麼是IOT呢?IOT就是物聯網。IOT的知識圖譜的要點有很多:語義物聯、圖譜使能、知識規

聯網倉儲系統—環境搭建—BOA 伺服器和 SQLite3 移植

一、專案環境介紹:1、Ubuntu 12.04 發行版2、GCC 交叉編譯工具鏈(版本 4.5.1)3、U-boot-2010.034、FS4412 開發板(ARM Cortex-A9 核心)5、FS_

小作坊式專案開發

兩天前在寫操作手冊的時候,發現系統中某模組有個BUG,說簡單不簡單,說複雜不復雜,涉及到介面上的一些文字調整,還涉及到工作流的流程圖的重畫。 背景:我在客戶現場,擔任實施經理。 我將BUG記錄下來,通過郵件傳送給BUG所在模組的開發人員,並抄送給專案經理。 因為事情已經過去