PIXNET Logo登入

聯成電腦-讓你價值連城

跳到主文

聯成電腦痞客邦官方BLOG學習電腦必備秘笈,提供各種學電腦課程作品及聯成電腦評價,學員對電腦課程的學習心得包含手機app 、工業設計、室內設計及電腦證照考試等,是您學電腦課程最佳範本。

部落格全站分類:電玩動漫

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 12月 01 週四 202210:00
  • JavaScript的型別在TypeScript中認識物件型別

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
參考目錄:
第1篇、TypeScript初探篇
第2篇、JavaScript的型別在TypeScript中應用(一)-認識原始資料型別
第3篇、JavaScript的型別在TypeScript中應用(二)-認識物件型別
第4篇、TypeScript物件導向-類別(Class)的使用方式
第5篇、TypeScript物件導向-介面(Interface)的使用方式
 
 
 
JavaScript的型別有兩種,分成原始資料型別(Primitive data types)與物件型別(Object types),原始資料型別介紹請參閱上一篇,本篇即將介紹物件型別與其它常見的型別。
 

任務一:認識物件型別(Object types)


  1-1:認識物件


  1-2:修改物件型別中的值


  1-3:物件可當參數傳遞


任務二:認識鴨子類型(Duck Typing)


任務三:其它常見的資料類型


  3-1:認識Map


  3-2:認識Set


  3-3:認識Tuple元組


 
 
 
任務一:認識物件型別(Object types)
 
1-1:認識物件
物件是由鍵(key)與值(value)組成。值可以是字串、數值、函數、陣列、物件等。
 

var myobject = {


    key1: "mydata", // 字串


    key2: 123,  //整數


    key3: function() {// 函數


        console.log("ABC");


        return "BCD"


    },


    key4:["arr1", "arr2"] //陣列


}


//物件


console.log(myobject)


 


/*{


  key1: 'mydata',


  key2: 123,


  key3: [Function: key3],


  key4: [ 'arr1', 'arr2' ]


} */


 


//物件中的值


console.log(myobject.key1) //mydata


//物件中的函數


console.log(myobject.key3())//ABC BCD//


 
 
 
 
1-2:修改物件型別中的值
注意修改的資料值要與物件中的型別一樣
 

//物件


var myinfo = {


    city: "台北",


    memberid: 123,


    mydata: function () { }


};


//修改物件值


myinfo.city = "高雄"; //資料要與物件中的型別一致


myinfo.memberid = 999;


//修改屬性值


myinfo.mydata = function () {


    console.log("Hello:" + myinfo.city); //hello 高雄


    console.log("Memeber:"+myinfo.memberid);//Member:999


};


//呼叫物件中的函數


myinfo.mydata();


 
 
 
 
1-3:物件可當參數傳遞
物件也可以當作一個參數傳遞給函數Function
 

//物件也可以當作一個參數傳遞給函數Function


var fruit = {


    fruit1: "Apple",


    fruit2: "Kiwi",


};


var buy = function (obj: { fruit1: string, fruit2: string }) {


    console.log("水果1 : " + obj.fruit1);//水果1 :Apple


    console.log("水果2 : " + obj.fruit2);//水果2 :Kiwi


}


buy(fruit);


 
 
 
 
任務二:認識鴨子類型(DuckTyping)
 
鴨子類型是動態類型的一種,也是多態(polymorphism)的一種。
 

//鴨子類型DcukTyping


interface ISize {


    width: number


    height: number


}


//(代入參數型別):return型別


function addPoints(box1: ISize, box2: ISize): ISize {


    var w = box1.width + box2.width


    var h = box1.height + box2.height


    return { width: w, height: h }


}


//呼叫型別並把參數代入


var newPoint = addPoints(


    { width: 10, height: 35 },


    { width: 25, height: 41 }


)


console.log(newPoint); //{ width: 35, height: 76 }


export { }; //使用 ES Module


 
 
 
 
任務三:其它常見的資料類型
 
3-1:認識Map
Map是ES6中新引入的一種新的類型,使用鍵(Key)值(Value)儲存資料
任何值都可以作為鍵(Key)或一個值(Value)。
 
 
 
使用 Map類型時需要使用new 來建立Map資料
 

//MAP 類型


var myMap = new Map([


    ["key1", "value1"],


    ["key2", "value2"]


]);


 


console.log(myMap);//Map(2) { 'key1' => 'value1', 'key2' => 'value2' }


 
 
 
 
因Map 是 ES6 中新引入的一種新的類型,編譯時需要使用es6來編譯
指令:tsc - -target es6 t4.ts
執行:node t4.js
 
 
 
Map常用函數及屬性
 

//Map常用函數及屬性


var mycitymapping = new Map();


//設定 Map鍵(key)值(value)


mycitymapping.set("台北", 1);


mycitymapping.set("新竹", 2);


mycitymapping.set("高雄", 3);


console.log(mycitymapping);//Map(3) { '台北' => 1, '新竹' => 2, '高雄' => 3 }


//抓取對應的value


console.log(mycitymapping.get("高雄"));// 3


//判斷是否有該鍵(key)


console.log(mycitymapping.has("新竹"));// true


console.log(mycitymapping.has("宜蘭"));// false


//Map大小


console.log(mycitymapping.size);// 3


//删除高雄


console.log(mycitymapping.delete("高雄"));// true


console.log(mycitymapping);//Map(2) { '台北' => 1, '新竹' => 2}


//移除 Map


mycitymapping.clear();


console.log(mycitymapping);//{}


 
 
 
3-2:認識Set
Set 陣列值是唯一不重複
 

//set


var mySet  = new Set ( [ 1 , 2 , 2 , 4 , 4 ] ) ;


console.log(mySet);//Set(3) { 1, 2, 4 }


 
 
 
 
3-3:認識Tuple元組
陣列中資料通常來說類型是一樣的,如果需要存取的類型不同,就需要使用Tuple元組,也可以做為參數傳給函數。
 

//元組資料可以儲存不同類型


var mytuple = ["John",32];


console.log(mytuple)//[ 'John', 32 ]


console.log(mytuple[0])//John


console.log(mytuple[1])//32


console.log("長度:"+mytuple.length)//2


mytuple.push("ABC")//新增一個元素


console.log(mytuple)//[ 'John', 32, 'ABC' ]


console.log(mytuple.pop()+" 刪除了")//刪除最後元素


console.log(mytuple)//[ 'John', 32 ]


mytuple[0] = "Mary"//更新元素


console.log(mytuple)//[ 'Mary', 32 ]


 
 
 
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(4)

  • 個人分類:講師技術文
▲top
  • 11月 17 週四 202210:00
  • 【WordPress教學】為自己的網站設定獨立網域

article_main_img

文、kk
 
 
哈囉!我是kk,一個『從事數位行銷十多年,也熱愛幫你透過網路,創造財富』的分享家。
 
網域類似於網站的門牌號碼,可以對應網站的IP位置,但IP位置是一連串的數字,不方便記憶,為了使用,因此產生網域。使用WordPress,會建議兩種申請網域的方式,一種是透過專業的網域代管商採購,例如:GoDaddy或PChome等。一種是透過虛擬伺服器提供商採購,以Bluehost為例,透過其申請第一年免費,但須注意第二年恢復收費時的費用。
 
 
 
 
Bluehost和WordPress整合度佳,也是WordPress官方推薦的虛擬伺服器廠商之一。總共有4月費種方案(以一次簽約36個月舉例):
 



 




BASIC




PLUS




CHOICE PLUS




PRO






費用




每月$2.95美金




每月$5.45美金




每月$5.45美金




每月$13.95美金






適合對象




適合僅擁有單一網站的入門者




適合成長中的網站




適合成長中的網站




適合大型網站






網站空間




提供50GB網站空間等服務




網站空間不受限制




網站空間不受限制




網站空間不受限制






更多功能




-




提供無限的網站支援




多數功能和PLUS方案相同,但多了網域隱私保護、自動備份等功能




多數功能和CHOICE PLUS方案相同,但多了高效能、獨立IP





 
 
 
 
選擇BASIC方案,可以創造一個新的網域(透過Bluehost申請),或使用既有網域(透過其他網域代管商申請)
 
 
接著輸入Account Information(帳戶資訊)、確認Package Information(方案資訊)、Package Extras(額外加購)、Payment Information(付款資訊),點選submit(送出),確認相關內容,即完成Bluehost方案採購。
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(5)

  • 個人分類:講師技術文
▲top
  • 10月 25 週二 202210:00
  • 在WordPress銷售商品,怎麼設定運費

article_main_img

Photo credit:Pexels
 
 
 
文、KK
 
 
哈囉!我是kk,一個『從事數位行銷十多年,也熱愛幫你透過網路,創造財富』的分享家。
 
一般使用WordPress架設網站,又想打造網購平台,會建議使用整合度較高的
WooCommerce。進入WordPress後台,點選「外掛」>「安裝外掛」,搜尋「WooCommerce」下載並啟用。
 
 
 
 
點選「WooCommerce」>「設定」>「運送方式」>「新增運送區域」。「區域名稱」填寫台灣、「區域中的地區」填寫台灣,「運送方式」點選「新增運送方式」,物流方式預設有單一費率、免費運送、自行取貨,點選「新增運送方式」確認。
 
 
 
 
在「運送方式」內點選運送的方式,可調整標題名稱、設定相關條件。以「免費運送」為例,可修改名稱為,每筆訂單滿百免運費;設定相關條件,可選擇「不提供」(無門檻條件皆免運),以及設定每筆訂單的最小金額與使用折扣碼的組合搭配,點選「儲存設定」完成設定。欄位可使用托放方式排序,建議將「免費運送」排序第一,滿足免運條件優先開放買家使用。
 
 
以「單一運費」為例,這是收取固定的運費,可設定多筆,依照各宅配包裹尺寸、區域(本島互寄、本島寄往離島、離島寄往本島)、常溫/低溫等費用計價。另以「自行取貨」為例,開放此選項,需填寫正確之商店地址,點選「WooCommerce」>「一般」完成設定。
 
 
 
如何設定不同商品,收取不同運費?
 
有些特定商品,例如:大型商品、易碎商品,因運送方式不同於一般商品,因此須設定不同運費,點選「WooCommerce」>「設定」>「運送方式」>「運送類別」>「新增運送類別」。
 
 
 
 
點選「WooCommerce」>「設定」>「運送方式」>選取之前設定好之區域>在運送方式下的「單一費率」(或有另外修正之名稱)>設定該運送費別費用。原來單一費用內的稅金狀態改「無」,費用留空白,並在運送類別費用內設定相關費用,計算方式選取「每一訂單:收取最貴的運送類別費用」,點選「儲存設定」完成相關設定。
 
 
 
 
然後到WooCommerce「商品」>「所有商品」選擇一個特定商品,調整「運送方式」>「運送類別」完成設定。
 
 
 
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(10)

  • 個人分類:講師技術文
▲top
  • 10月 04 週二 202210:00
  • Web網頁伺服器-Nginx實作架在Windows上

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
科普一下Nginx是一個輕量級的Http網頁反向代理伺服器,優點是支持多國語言、暫存少、併發強,同時間連線次數可以比較於Apache -httpd伺服器 來的更多,例Apache的連結數預設最大為250個連線,但一旦超過200以上,網頁開啟速度就會變的超級慢,反之如利用工具Docker-Nginx 則可承受大約1024個連線。
 
另外Nginx它有一個最大的特點是在處理靜態(多文字Html、圖片等)的性能,足足能比Apache高3倍以上,所以如果專案偏向多靜態處理,建議一定要試試看Nginx伺服器。
 
 
Nginx相較於其它的網頁伺服器也更方便於工程師開發與部署,我們直接馬上來實作將伺服器架到windows上。
 
 

任務一:下載、安裝與啟動、關閉


        任務1-1.下載 nginx


        任務1-2.啟動 nginx


        任務1-3.查詢啟動是否成功


        任務1-4.關閉 nginx


任務二:使用winsw部署將程式改成開機時自動啟動服務


        任務2-1.先安裝 .NET Framework 3.5 以上


        任務2-2.下載winsw


        任務2-3.基本設定(複製winsw.exe 及 建立 winsw.xml 檔)


        任務2-4.安裝及卸載指令


        任務2-5.部署將程式改成開機時自動啟動服務


 
 
任務一:下載、安裝與啟動、關閉
 
任務1-1.下載 nginx
下載網址:https://nginx.org/en/download.html
找到windows版本的檔案下載回來
 
 
 
 
下載後是一個壓縮檔,解壓後檔案如下圖
 
 
 
 
 
任務1-2.啟動 nginx
下載成功後就可以準備啟動nginx伺服器了
首先開啟cmd.exe(命令提示字元)
 
 
 
 
1. cd進入 nginx-1.19.6資料夾
輸入指令:cd nginx-1.19.6
 
2. 更新檔名
#ren 舊檔案 新檔名
輸入指令:ren nginx-1.19.6 nginx
 
3. cd進入 nginx資料夾
輸入指令:cd nginx
 
4. 啟動nginx
輸入指令:start nginx
 
 
 
 
此時會跳出Windows安全性警訊 → 按下允許存取即可
 
 
 
 
任務1-3.查詢啟動是否成功
最後查詢啟動是否成功。
輸入指令:tasklist /fi "imagename eq nginx.exe
 
 
 
 
也可以在瀏覽器輸入127.0.0.1 如果出現以下畫面代表安裝成功
 
 
 
 
任務1-4.關閉 nginx
輸入指令:強制停止 nginx -s stop 或 正常程序的停止 nginx -s quit
 
 
 
 
任務二:使用winsw部署將程式改成開機時自動啟動服務
 
任務2-1.先安裝 .NET Framework 3.5 以上功能
首先需要安裝 .NET Framework 3.5 以上功能,不然裝到一半會跑出以下畫面,還是得安裝。
 
 
 
 
 
任務2-2.下載winsw
下載路徑:http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/2.9.0/
 
 
 
 
目前安裝的版本為winsw-2.9.0.exe
 
 
 
 
任務2-3. 基本設定(複製winsw.exe 及 建立 winsw.xml 檔)
步驟一:將下載後的文件(如 winsw-2.9.0-bin.exe )拷貝至nginx資料夾下,將重新命名為nginx-winsw.exe
 
 
 
 
步驟二:在nginx資料夾下創建 nginx-winsw.xml 文件,並輸入以下內容後存檔
 
nginx-winsw.xml
 
<?xml version="1.0" encoding="UTF-8" ?>
 
<service>
 
 <id>Nginx</id>
 
 <name>Nginx</name>
 
 <description>本服務用於加載Nginx服務,請確保開機啟動。</description>
 
 <logpath>C:\Users\yiru\Downloads\nginx-1.19.6\nginx\logs</logpath>
 
 <executable>nginx.exe</executable>
 
 <stopexecutable>nginx.exe</stopexecutable>
 
 <stopargument>-s</stopargument>
 
 <stopargument>stop</stopargument>
 
 <logmode>rotate</logmode>
 
</service>
 
建好這兩個檔案之後,目錄檔案如下:
 
 
 
 
任務2-4.安裝及卸載指令
開啟cmd (命令提示字元)→ 接著cd 到 nginx 目錄
輸入安裝指令:nginx-winsw.exe install
 
 
 
 
輸入卸載 指令:nginx-winsw.exe uninstall
 
 
 
 
任務2-5.部署將程式改成開機時自動啟動服務
方法一:首先開啟應用程式 → 服務
 
 
 
 
開啟服務視窗後,這邊已經多了 Nginx 服務了
 
 
 
 
按下右鍵 → 直接啟動
 
 
 
 
當成功啟動時,會自動跳出瀏覽器,並打開127.0.0.1的歡迎畫面。
如果沒有自動跳出,請自己開啟瀏覽器並在網址中輸入127.0.0.1。
 
 
 
 
方法二:也可以使用指令啟動
首先開啟cmd → 右鍵以系統管理員身分執行
 
 
 
 
常用指令如下:
啟動服務:net start nginx
查看狀態指令:tasklist /fi "imagename eq nginx.exe"
停止服務:net stop nginx
 
 
 
 
啟動後,重新開機,這邊會自動執行 nginx,不需要再做其它設定,瀏覽器網址列上直接打 127.0.0.1 ,如果有看到歡迎畫面代表我們已經成功將nginx成功架在windows上了。
 
 
 
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(17)

  • 個人分類:講師技術文
▲top
  • 9月 13 週二 202210:00
  • 工程師網頁前端框架,Vue.js屬性綁定、事件處理、計數器篇

article_main_img

Photo credit:Pexels
 
 
文、意如老師
 
 
續上一篇 工程師一定要了解Vue.js 資料綁定篇
 
認識資料綁定後接續著我們來認識屬性綁定及事件處理,最後我們要實作一個計數器。
 
 
 

任務一:屬性綁定-v-bind 使用方式


任務二:綁定css-style屬性


2-1.綁定多個css-Style屬性


2-2.綁定:style物件object 寫法(集合)


2-3.綁定:style array 寫法


任務三:事件處理


任務四:實作計數器


 
 
 
任務一:屬性綁定-v-bind使用方式
 
上一篇我們有介紹到可以利用 {{ }} 將資料輸出至網頁模版上,那如果屬性也想要{{}}是不是也能這樣?
 
例如我們預想的寫法
 
const vm = Vue.createApp({
  data () {
    return {
      memberId: 'abc123'
    }
  }
}).mount('#app');
 
<div id="app">
  <p id="{{ memberId }}">...</p>
</div>
 
 
 
但可惜無法直接這麼使用,必須使用屬性綁定v-bind的方式,
▶ 傳統寫法
<p id="member"></p>
 
▶ 綁定綁定v-bind寫法
const vm = Vue.createApp({
  data () {
    return {
      memberId: 'abc123'
    }
  }
}).mount('#app');
 
<div id="app">
  <p v-bind: memberId>
</div>
 
 
 
完整範例:
index.html
<!--以超連結為例-三種寫法都行的通--> 
<div id="myapp">
    超連結<br>
        Note:第一種寫法(傳統寫法)
    <a href="http://www.google.com/" title="連到YiruAtStudio">link0</a><br>
    Note:第二種寫法(綁v-bind)
    <a v-bind:href="url" v-bind:title="hint">link1</a><br>
    Note:第三種寫法
    <a :href="url" :title="hint">link2</a>
</div>
 
main.js
var myapp = new Vue({
  el: '#myapp',
  data: {
    url: 'https://dotblogs.com.tw/YiruAtStudio',
    hint: '連到YiruAtStudio'
  }
})
 
 
 
 
參考以下網址查看完整程式碼以及試試效果:
https://jsfiddle.net/YiruAtStudio/y5d4o0jp/7/
 
 
 
任務二:綁定css-style屬性
 
2-1. 綁定多個css-Style屬性-使用大括弧{}包起來
 
▶ 傳統寫法:
<h2 style=”color:blue;font-size:50px;”>文字</h2>
▶ 屬性綁定寫法:
<h2 :style="{color:mycolor,fontSize:myfsize}">文字</h2>
 
 
 
完整範例:
index.html
<div id="myapp">
<h2 :style="{color:mycolor,fontSize:myfsize}">文字</h2>
</div>
 
main.js
var myapp = new Vue({
  el: '#myapp',
  data: {
    mycolor: 'blue',
    myfsize: '50px'
  }
})
 
 
 
參考以下網址查看完整程式碼以及試試效果:
https://jsfiddle.net/YiruAtStudio/d3ye75ma/1/
 
 
 
2-2.綁定:style物件,使用object 寫法(集合)
 
 
 
 
▶ 傳統寫法:
<h3 style=”color:blue;font-size:50px;”>文字</h3>
▶ 使用object 綁定寫法:
<h3 :style="mystyleObj">HI,文字</h3>
 
 
 
完整範例:
index.html
<div id="myapp">
  <h3 :style="mystyleObj">HI,文字</h3>
</div>
main.js
var myapp = new Vue({
  el: '#myapp',
  data: {
    mystyleObj: {
      color: 'blue',
      FontSize: '50px'
    }
  }
})
 
 
 
參考以下網址查看完整程式碼以及試試效果:
https://jsfiddle.net/YiruAtStudio/h16a5omp/3/
 
 
 
2-3.綁定:style array 寫法
 
▶ 傳統寫法:
<h3 style=”color:blue;font-size:50px;”>文字</h3>
 
▶ 綁定:style array 寫法
<h3 :style="[mycolor,myfontSize]">HI,文字</h3>
 
 
 
完整範例:
index.html
<div id="myapp">
 <h3 :style="[mycolor,myfontSize]">HI,文字</h3>
</div>
 
main.js
var myapp = new Vue({
  el: '#myapp',
  data: {
    mycolor: {'color': 'blue'},
    myfontSize: {'fontSize': '50px'}
  }
})
 
 
 
參考以下網址查看完整程式碼以及試試效果:
https://jsfiddle.net/YiruAtStudio/c6yLfesq/3/
 
 
 
 
任務三:事件處理
 
如果需要功能事件處理function()的時候,可以寫在methods裡
▶ 傳統寫法:
<button onclick="fn()">文字</button>
▶ 綁定事件寫法1:
<button v-on:click="fn()">呼叫fn</button><br>
▶ 綁定事件寫法2:
<button @click="fn()">呼叫fn</button><br>
 
 
 
範例題目:
原文字為 “hihi”,
function方法功能為 :
如文字是 “hihi” 文字將改成 “hello” ,  如果是 “hello” 文字將改成 “hihi”
 
  
 
 
 
完整範例
index.html
<div id="app">
  <!--兩個按鈕效果都一樣-->
  <button v-on:click="fn()">呼叫fn</button><br>
  <!--@為縮寫方式-->
  <button @click="fn()">呼叫fn</button><br>
  {{msg}}
</div>
 
main.js
var myapp = new Vue({
  el: '#myapp',
  data: {
    msg: 'hihi'
  },
methods: {
    fn: function () {
      if (this.msg === 'hihi') {
        this.msg = 'hello'
      } else {
        this.msg = 'hihi'
      }
    }
  }
})
 
console.log(myapp.mycolor)
 
 
 
參考以下網址查看完整程式碼以及試試效果:
https://jsfiddle.net/YiruAtStudio/djbemyo9/21/
 
 
 
任務四:實作計數器
 
 
 
 
完整範例:
index.html
<div id="myapp">
 <button v-on:click="fn()">+1</button><br>
 <button @click="fn2()">-1</button><br>
 計數:{{num}}
</div>
 
main.js
var myapp = new Vue({
  el: '#myapp',
  data: {
    num: 0
  },
  methods: {
    fn: function () {
      this.num += 1
    },
    fn2: function () {
      this.num -= 1
    }
  }
})
 
console.log(myapp.num)
 
參考以下網址查看完整程式碼以及試試效果:
https://jsfiddle.net/YiruAtStudio/08rubh6w/
 
 
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(2)

  • 個人分類:講師技術文
▲top
  • 9月 01 週四 202210:00
  • 自己架設我的wikipedia維基百科

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
前幾天接到任務,公司想要將自己的資訊放到維基百科,並且想要架在自己的伺服器上,說實在之前我也沒做過,但既然身為工程師就要有挑戰的精神,話不多說,開始實作吧!(實作時間約30分鐘)
 
 

任務一:下載mediawiki套件


任務二:安裝Xampp伺服器與資料庫


任務三:伺服器與資料庫基本設定


        3-1.將檔案搬移至htdocs資料夾下


        3-2.設定port號


        3-3.錯誤排除處理


        3-4.mediawiki基礎設定


 
 
 
任務一:下載mediawiki套件
 
首先到官方網站把mediawiki整包套件先載下來並安裝到自己的電腦上,
載點如下: https://www.mediawiki.org/wiki/Download/zh
 
 
 
 
目前抓的檔案是 .tar.gz壓縮的檔案,下載回來自己的硬碟後,解壓縮(記得自己安裝在哪個目錄)
完整目錄如下:
 
 
 
 
任務二:安裝Xampp伺服器與資料庫
 
安裝XAMPP包,它是一個Apache網頁伺服器與PHP及MariaDB集合在一起的安裝包,允許使用者可以在自己的電腦上輕易的建立網頁伺服器及MySQL資料庫。
下載路徑:https://www.apachefriends.org/zh_tw/download.html
下載回來後,安裝到自己的硬碟上
 
 
 
 
按下Next下一步,挑選要安裝的環境,如不需要使用時,取消打V
 
 
 
 
接著選擇要儲存路徑,建議預設即可(C:\xampp)
 
 
 
 
 
安裝成功後開啟Xampp控制台,左下角選單列,選擇Xampp Control Panel
 
 
 
 
啟動apache、mysql:點選Actions中的Start按鈕開啟
 
 
 
 
開啟瀏覽器 >> 在網址列上打入 localhost,會出現以下畫面,代表啟動成功
 
 
 
 
開啟MySql 圖形化介面(phpmyadmin)
在MySql右邊按鈕 >> 點選Admin
 
 
 
 
點選Admin按鈕後會自動開啟phpmyadmin 圖形化介面,如下圖:
 
 
有看到以上的畫面就代表伺服器與資料庫已經成功安裝好了
 
 
 
任務三:伺服器與資料庫基本設定
 
3-1.將檔案搬移至htdocs資料夾下
接下來開啟路徑C://xampp/htdocs,把剛剛下載的mediawiki整包套件檔案直接搬到 htdocs 資料夾底下,目前完成的檔案路徑如下:C://xampp/htdocs/mediawiki
 
 
 
 
3-2.設定port號
開Port 設定目錄,開啟路徑為:C:\xampp\apache\conf\extra\httpd-vhosts.conf
設定傾聽port為7410,並加入下列程式碼,請參考:
#Media-7410
Listen 7410
 
##NameVirtualHost *:7410
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
<VirtualHost *:7410>
    ##ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "C:/xampp/htdocs/mediawiki"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>
 
 
 
 
加入上述的程式碼後,儲存關閉檔案,記得最後要記得重啟XAMPP。
重啟可直接按下Apache 的 Actions 的Stop ,再按下Start,
重啟後需確認剛剛設定的7410port有開啟
 
 
 
 
接下來再次開啟瀏覽器,輸入localhost:7410,即可成功開啟mediawiki的首頁。
 
 
 
 
3-3.錯誤排除處理
如果網頁無法開啟,可能會碰到以下錯誤的發生
 
 
 
 
或者碰到這種錯誤
 
 
這是因為解壓縮檔案 WinRar和7-zip會忽略了PaxHeader文件,導致錯誤,可以使用WinZip來解壓縮。
 
 
 
3-4. mediawiki基礎設定
點選set up the wiki,基礎設定
 
 
 
 
這個連結到了wiki首頁-安裝頁,點選[繼續]
 
 
 
 
接下來會看到一個歡迎畫面
 
 
 
 
[繼續]往下設定設定資料庫>連線資料庫
基礎設定
資料庫主機:localhost
資料庫名稱:my_wiki
資料庫帳戶:root
 
 
 
 
勾選V使用與安裝程序相同的帳號後按下[繼續]
 
 
 
 
設定wiki的名稱、使用者名稱、使用者密碼、電子郵件地址,設定完後按下[繼續]
 
 
 
 
依自己的需求設定使用者權限,按下[繼續]按鈕直到安裝完成
 
 
 
 
 
 
安裝完成後還需要下載localsettings.php到自己本機上
 
 
 
 
把下載回來的 localsettings.php 放置在您的Wiki的根目錄(index.php所在的目錄)中
 
 
 
 
開啟index.php或直接開啟瀏覽器
網址輸入:localhost:7410/index.php/
即可成功連到你的wiki首頁
 
 
 
 
回到資料庫(phpmyadmin)
開啟Xampp控制台後在MySql右邊按鈕 >> 點選Admin
 
 
 
 
接下來會自動開啟phpmyadmin首頁,接著看到資料庫的地方,已經自動生成剛剛設定的資料表名稱為my_wiki的資料庫
 
 
 
 
確認資料表已經生成後,就可以開始編輯你自己想要的內容了。
 
 
 
 
完成檔如下圖:
 
 
 
 
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(26)

  • 個人分類:講師技術文
▲top
  • 8月 16 週二 202210:00
  • 工程師一定要了解Vue.js 資料綁定篇

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
了解了基本的程式架構後,接下來我們要來認識資料綁定以及屬性綁定
 

任務:資料綁定


1. 使用v-text 接資料


2. 使用大括弧 {{ }} 接資料


3. 認識資料型態function


4. 使用v-html 接資料


5. 使用v-model接資料


6. 設計表單資料綁定


 
 
 
任務:資料綁定
 
1. 使用v-text 接資料
例:v-text="message"
 
範例index.html程式碼參考如下:
<div id="myapp">
      <span v-text="message"></span>
</div>
 
 
 
範例main.js程式碼如下:
var myapp = new Vue({
  el: '#myapp',
  data: {
    message: 'Hello myapp!'
  }
})
 
 
 
 
2. 使用大括弧 {{ }} 接資料
 
第二種方法,使用大括號的方式來接資料例如{{message}},這種方式使用起來會較有彈性更方便。
 
範例Index.html程式碼如下:
<div id="myapp">
      <span>{{message}}</span>
</div>
 
 
 
範例main.js程式碼如下:
var myapp = new Vue({
  el: '#myapp',
  data: {
    message: 'Hello myapp!'
  }
})
 
 
 
兩種方式混合一起用:
 
範例Index.html程式碼如下:
<div id="myapp">
      <span v-text="message"></span>
      <span>{{message}}</span>
</div>
 
 
 
範例main.js程式碼如下:
var myapp = new Vue({
  el: '#myapp',
  data: {
    message: 'Hello myapp!'
  }
})
 
 
 
網頁結果顯示:
 
 
程式碼參考:https://jsfiddle.net/YiruAtStudio/e4809f6t/5/
 
 
 
如果你的main.js是首頁,並預設已經有寫一些內容,那麼我們也可以繼續往下加入(例:17行)
 
 
 
 
這時候開啟我們的首頁最下方,就會有我們剛剛輸入的文字了。
 
 
可參考-程式碼:https://jsfiddle.net/YiruAtStudio/01kdp57w/6/
 
 
 
3. 認識資料型態function
 
如元件檔副檔名為.vue例App.vue它們都是各自獨立非共用,所以元件中的data都只能是function型態,並可用return 方式來回傳資料
例路徑:src\components\mytest.vue
 
參考程式碼如下
<div class="myfont">
        {{mymsg}}
</div>
<script>
export default{
  data () {
    return {
      mymsg: 'hi,mymsg!'
    }
  }
}
</script>
 
 
 
 
4. 使用v-html接資料:例v-html="message
如果要返回(return)的是html,則需要使用的是v-html
 
範例Index.html程式碼如下:
 
<div id="myapp">
 <span v-html="message"></span>
</div>
 
 
 
範例main.js程式碼如下:
var myapp = new Vue({
  el: '#myapp',
  data: {
    message: '<a href="#">我是超連結</a>'
  }
})
console.log(myapp.message)
 
 
 
執行結果:
 
 
完成程式碼參考:https://jsfiddle.net/YiruAtStudio/sx35fd9m/
 
 
 
5. 使用v-model接資料
先來看看v-model的效果如下圖,在使用者填完資料或選擇資料時,下方資訊則會自動更新。
 
 
 
 
使用方式如下,範例index.html程式碼:
<div id="myapp">
  姓名:<input type ="text" v-model="myname">
  購買數量:<input type = "number" v-model="mynum">
  <br>
  {{myname}},購買數量為:{{mynum}}
</div>
 
 
 
範例main.js程式碼如下:
var myapp = new Vue({
  el: '#myapp',
  data: {
    myname: 'Name:',
    mynum: '5'
  }
})
 
console.log(myapp.myname)
 
 
 
完成檔:
 
 
完成程式碼:https://jsfiddle.net/YiruAtStudio/8vex0af1/
 
 
 
6. 設計表單資料綁定
範例index.html程式碼如下:
<input type ="text" v-model="myname">
<input type = "number" v-model="mynum">
<textarea v-model="mynote"></textarea>
運送:<br>
<input type ="radio" name="s1" v-model="transport"  value="711">7-11<br>
<input type ="radio" name="s1" v-model="transport"  value="family">全家<br>
<input type ="radio" name="s1" v-model="transport"  value="hilife">萊爾富<br>
加購:<br>
<input type="checkbox" v-model="chkbox" value="python">python
<input type="checkbox" v-model="chkbox" value="Java">Java
<input type="checkbox" v-model="chkbox" value="PHP">PHP
付款方式:
<select v-model="select_item">
  <option value="ATM">ATM</option>
  <option value="pay">貨到付款</option>
  <option value="ment">取貨付款</option>
</select>
{{myname}},購買數量為:{{mynum}},<br>
{{mynote}}。<br>
運送方式{{transport}}<br>
加購{{chkbox}}<br>
付款方式{{select_item}}
 
 
 
範例main.js程式碼如下:
var myapp = new Vue({
  el: '#myapp',
  data: {
    myname: 'Name:',
    mynum: '5',
    mynote: '備註',
    transport: '請選擇',
    // 宣告checkbox-data中的變數為陣列[]
    chkbox:[],
    //也可宣告null
    select_item:null,
  }
})
 
 
 
執行結果如下圖:
 
 
 
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(2)

  • 個人分類:講師技術文
▲top
  • 7月 26 週二 202210:00
  • 管理多個IT部門的經理 學習篇(二)

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
續上一篇:管理多個IT部門的經理 學習篇(一)本篇繼續分享
 

3. 管理菜鳥和老鳥經理


4. 招募新經理


5. 找出組織失能的原因


6. 培養團隊的技術策略


 
 
3. 管理菜鳥和老鳥經理
 
管理菜鳥經理
花時間在培訓菜鳥經理是非常必要的前期時間成本,除了學習新技能外,人際互動也是需要接受一番訓練。
 
例如如何舉辦一對一會議,如何主持會議,怎麼紀錄和追蹤會議重點。
然後多關心一對一會議進展如何,觀察哪些問題或挑戰需要你協助解決。
 
菜鳥經理陷入常見情況,大多沒有把職責交給團隊其他人員,試著應付兩份工作,從未學會放手,不斷拉長工作時間,過度的工作也會為團隊帶來危機。
 
這時需要你明確的告訴他,移交工作以及幫助他對舊工作放手。
 
另外像是控制狂主管菜鳥經理總是希望每位成員都能詳盡報告工作,要求不必要的枝微末節,容易惹惱他的團隊,也剝奪團隊做出任何的決定,認為自己的工作自己的工作就是指派任務而已,最糟糕是,控制欲極強的經理會害怕被拿走控制權,因此經常會想對他們的主管隱匿實情,對團隊近況避而不答。
 
 
解決方式:讓經理明白他們對團隊需要對交付的成果負責,引導團隊成員專注目標和創造成果。再三提醒他承諾過什麼,手把手教他如何做團隊規劃,提供指導,明確告訴經理,你的期望,經理必須為團隊成敗負責,並幫他掌握相應技能。
 
 
管理老鳥經理:
他知道如何帶好團隊,甚至有自己的獨門管理心法,唯一要注意的是,需要確保這個人是否符合團隊文化。
 
老鳥經理對於管理的看法或風格可能與你不同,而你必須去克服這些差異,如這人帶領技術團隊經驗比你豐富,你可以向他請教,但也不要害怕提供你自己的意見回饋,允許他教你新東西,在各自擅長的領域協力合作。
 
 
 
4. 招募新經理
 
經理與組織文化能否契合非常重要,如果經理與你的理念和團隊格格不入,通常會導致經理失責,你得開除他,團隊紛紛出走,你也得開除他。
 
雇用更有經驗的經理和管理高層來彌補團隊其他成員的不足,成效有時可能一塌糊塗,帶著新文化而來的人們和組織既有文化產生摩擦,所以在招募經理時特別要謹慎。
 
 
Photo credit:Pexels
 
 
 
5. 找出組織失能的原因
 
觀察團隊
團隊表現就是不如預期時,需要觀察團隊,可以旁聽他們的日常會議,枯燥的會議是一種訊號,可能會議組織欠缺效率,運作良好的會議,人會積極參與討論,交流意見,激盪想法,如會議過度制式化,會壓縮了團隊對話的機會,反而會抹殺富有創造性的討論。
 
 
提出問題
為誰而打造系統,他們參與的原因是什麼,團隊是否不欣賞或理解這些產品,因此缺乏解決這些問題的工作動力。
 
 
檢查團隊氛圍
團隊是否在專案上互相合作,還是各做各的?聊天室和電子郵件互動有趣嗎?與產品經理互動友善嗎,如果團隊績效良好,相敬如賓當然沒問題,但如果團隊效率不佳,那麼可能就會為你帶來麻煩。
 
當你發現團隊這些問題時,需要輔助經理拉他一把,向經理傳授經驗,幫助他從錯誤中學習。
 
 
 
6. 培養團隊的技術策略
 
思考如何將大專案拆分成一系列較小的可交付成果,這樣一來,即使無法實現宏大的目標願景,也能取得一些實際的成果。
 
將團隊工作時程的20%時間投入「持續性工程」為團隊保留時間,進行系統重構,修復錯誤,改善技術流程,進行小規模系統清理,提供持續系統支援等工作。
 
 
Photo credit:Pexels
 
 
 
最後結論如何幫助自己再不斷的往上進步?
例如:在IT領域不論是任何職位的IT們,一定要保持對技術的敏銳度,也撥出一些時間來閱讀程式碼,了解一些未知領域,日常參加事後檢討會議,跟上軟體開發流程的業界趨勢,經營公司外部的技術人脈等等,最後就是學無止盡,這些都可以幫助自己不斷的往上提身自己能力,增加保持對技術的敏銳度。
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(24)

  • 個人分類:講師技術文
▲top
  • 7月 07 週四 202210:00
  • 管理多個IT部門的經理 學習篇(一)

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
今天想跟大家分享一本書,書名為:經理人之道,這本書是專門寫給工程師經理的一本工具書,作者以工程師到經理主管最後到決策者的角度來分析說明,例如:如何帶好一個IT團隊或者多個跨部門的IT團隊管理以及到最後到高階管理層等等…,在每一個章節都有很豐富的介紹,本篇為書中的其一章節來做重點分享。
 
 
這篇章節為“管理經理人“,這個角色需要管理多個團隊的部門經理,例如A、B、C、D團隊中的經理,而這些經理底下也會有個技術領導(TechLead),這些技術lead底下就會是工程師們。
 
 
 
 
 
如何管理多個團隊的經理?
 
常見問題:
1. 管理經理人如何避免這項工作佔掉所有的時間?
2. 如何解決我不在場,只能聆聽“不可靠的證人”片面說法
 
在管理的初期可能很難在事態釀大之前就發現問題,因此需要不斷磨練敏銳的直覺,快速分辨事務的重要性,知道何時該深入了解狀況,不要浪費在非要務的任務上。
 
 
 
如何有效監督整個部門的6個關鍵要點
 
1. 如何從跨層級下屬獲得資訊
2. 讓經理當責的意義
3. 管理菜鳥和老鳥經理
4. 招募新經理
5. 找出組織失能的原因
6. 培養團隊的技術策略
 
 
 
1. 如何從跨層級下屬獲得資訊
 
有些人很擅長向上管理,對問題隱而不報,所以有些問題永遠不會升級到你那裡,當你發現時可能已經無法挽救。
 
作者建議舉辦跨層級的一對一會議和「下屬的下屬」開會,讓人們有機會進行真正的對話,目的是為了讓你可以隨時掌握團隊的運作。
 
 
 
2. 讓經理當責的意義
 
經理的工作主要是分憂,讓你將注意力放在大局上,而不是對任何團隊的細節緊抓不放,所以應讓經理擁有一致的目標,當他們一再無法達成目標,表示他們沒有盡到管理責任。
 
 
什麼是經理的責任?
 
 
不穩定的產品路徑圖
團隊效率不高,系統不穩定,大量人事異動或者團隊一直改變任務目標。
 
 
掉入無底洞的TechLead
全心全意試著重新設計某個核心系統,才剛起筆,但其工作堆積如山,但經理堅持認為這是一個不能心急求快的大問題。
 
 
全日制救火模式
經理帶領的團隊負責陳舊的系統,問題層出不窮,除了花時間救火還需要支援其他團隊,不斷的分散團隊的注意力,團隊規劃了遷移這些老系統的路徑圖,但是經理沒聽到這個計畫的進展,盡量應對滔滔不絕的支援請求。
 
 
 
以上的問題經理都必須承擔起帶領團隊走出困境,經理有責制定一個解決火災的原因計劃,如有其他問題而停滯不前,經理不應該隱匿事態,有責任向你反映,明確回報問題出自何處。
 
大多數情況下,他們沒有底氣與產品團隊斡旋,這時你就需要挺身而出,尋找其他經驗老道的幫手來協助經理。
 
經理也需要工作上的指導,多花時間與經理們相處,向他們提供回饋和指導,積極協助經理們的管理工作。
 
 
 
下一篇將繼續跟大家繼續分享:管理多個IT部門的經理 學習篇(二)
3. 管理菜鳥和老鳥經理
4. 招募新經理
5. 找出組織失能的原因
6. 培養團隊的技術策略
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(8)

  • 個人分類:講師技術文
▲top
  • 5月 24 週二 202210:00
  • 聯成電腦分享:最熱門的網頁前端框架,流程架構實作Vue.js 網頁篇

article_main_img

Photo credit:Pexels
 
 
 
文、意如老師
 
 
續上一篇:聯成電腦分享:最熱門的網頁前端框架,從零開始學Vue.js 安裝篇
 
 
 

任務一:認識目錄結構


任務二:了解整個流程,及實作第一個Vue.js網頁


 
 
 
任務一:認識目錄結構
 
續 上一篇 安裝好後,先到專案資料夾下,目前的目錄結構如下圖
 
 
 
 
我們先來認識一下幾個比較常會用到的資料夾
 



資料夾




說明






build




這個資料夾中可以放一些環境的配置


例如開發時用的程式版本node.js或是npm的版本等等


有關環境配置的檔案都會放在此資料夾內






config




程式常會使用的目錄路徑,或者port號等等的資訊會放在此資料夾下






node_modules




會使用到的套件都會放在此資料夾下,也是安裝npm時會附帶的套件






src




開發的項目都會放在此資料夾內


例如我們寫的程式碼就全都會放在src這個資料夾內






src/assets/css




放置會使用到的CSS






src/assets/images




放置會使用到的圖片,如icon,logo等圖






src/components




放置組件






src/App.vue




功能的入口






main.js




核心的文件也是整個專案的主要入口點,透過它連接到這個專案主要的根(功能)App.vue






static




靜態資源目錄,如圖片、字體等,


放在這個資料夾,不會被webpack處理。






test




初始測試目錄,可刪除






.xxxx文件




這些是一些配置文件,包括語法配置,git配置等






index.html




首頁入口文件






package.json




專案配置文件






README.md




專案的說明文檔,markdown 格式






babel




babel是一個轉碼器,因為目前瀏覽器對於新型態JavaScript語法支援度不高,babel-loader可將ES6或ES7語法轉為支援度高的ES5的語法。






ESLint




ESLint目的是改善程式碼品質,發現與調整程式碼的問題達到一致性,所以有安裝此套件的話,常常會在編譯執行時看到很多警告訊息,如果安裝之後想要忽略ESLint檢查,可以到.eslintignore文件中做修改。





 
 
 
任務二:了解整個流程,及實作第一個vue.js網頁
 
首先開啟專案的主要入口點main.js以及index.html
 
 
 
 
接著修改main.js檔案,如下圖
 
 
 
 
▶ Index.html 為專案開始的樣板,預設要顯示的網頁內容顯示於
<div id=”app”></div> 中。
▶ main.js程式解說:
var myvue = new Vue({ })  //每個 Vue  都需要通過實例化
 
 
程式碼參考如下:
 
new Vue({
 
  el:  // index.html 中 id名為app
 
  router: //傳入 vue-router元件(ES6)
 
  components : //會使用到UI子元件(App.vue)
 
  template ://表示html模板套用至<App/> 的 el 的標籤
 
})
 
 
 
接下來cmd(命令提示字元)執行指令:npm run dev
這個指令會啟動http server,這個指令會同時開啟根目錄下的index.html與src資料夾內的main.js這兩個檔案
 
main.js也會同時運行App.vue以及在router資料夾內的index.js
 
 
 
 
▶ App.vue程式解說:
<route-view/>是路由器顯示標籤,為vue-router使用,在index.js下Router函數中所使用的UI元件皆會套用至這個標籤當中。
簡單的說這邊樣板設定會套用至main.js
 
 
 
 
▶ index.js程式解說:
index.js 是由路由配置,定義路徑和UI元件,可以在Router這個函數內,自定義url路徑名稱(path),components下可以放入寫好的UI元件。
 
<router-view/> 為Vue-router使用,這樣index.js Router 這個函數下寫的components才會顯示出來
 
 
 
所以我們要產生新的UI元件,就要寫一個.vue檔,可放置在components資料夾之下;如要顯示這個vue元件,就需要到index.js中修改路由配置。
例:在src/components 新增 mytest.vue
路徑:src/components/mytest.vue
 
 
 
 
程式碼參考如下:
 
<template>
    <div class="myfont">
        {{mymsg}}
    </div>
</template>
 
<script>
export default{
    data(){
        return{
            mymsg:"hi,mymsg!"
        }
    }
}
 
</script>
 
<style>
    .myfont{
        background:yellow;
    }
</style>
 
 
 
再開啟路徑:src/router/index.js,程式碼參考如下:
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import mytest from '@/components/mytest'
 
Vue.use(Router)
 
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: HelloWorld
    },
    {
      path: '/mytest',
      name: 'mytest',
      component: mytest
    }
  ]
})
 
 
 
 
執行結果:
到cmd(命令提示字元)執行 npm run dev
 
下指令啟動server(伺服器)後,瀏覽器網址列輸入http://localhost:8080/#/mytest,會如下圖所示,你的第一張vue.js網頁已經完成了。
 
 
 
啟動後,只要一修改程式碼,瀏覽器上的這張網頁也都會自動更新,最後如果要關閉專案執行只要在cmd(命令提示字元)中輸入:Ctrl+C即可關閉整個專案。
(繼續閱讀...)
文章標籤

聯成電腦 發表在 痞客邦 留言(0) 人氣(7)

  • 個人分類:講師技術文
▲top
12...5»

.

最新文章

  • 聯成電腦快訊:學設計找聯成!全台灣首家Adobe授權培訓中心唯一授權超過27年培訓實績
  • 【Photoshop教學】魔法火焰光效果
  • 奇異博士2:失控多重宇宙Drawing
  • 【Photoshop教學】用神經濾鏡組合2張照片並協調色調
  • 【WordPress教學】網站SEO如何做好?Yoast外掛介紹
  • 【Excel教學】實作抽籤機
  • 是誰住在深海的大珊瑚裡?章魚哥
  • 好想成為VTuber!Live 2D角色前置作業
  • JavaScript的型別在TypeScript中認識物件型別
  • 網友激推!美味夜市小吃烤魷魚畫作

_