【企業工作坊x題目介紹|LINE】
想報名參加黑客松卻對企業出題毫無頭緒嗎?
不用擔心!10/17(六)將在清大台達館舉辦各企業的賽前工作坊
讓你提前了解出題方向與所需技術
正式比賽時不用心慌慌、贏在起跑點🎉 🎉
這次有哪些企業參加企業工作坊呢?
首先是總部位於日本的 #LINE
以「拉近你我的距離」為企業使命
致力將人們、資訊與社會緊密連結
相信大家並不陌生
📍本次LINE黑客松的題目如下:
❝
LIFF (LINE Frontend Framework) 是 LINE 為網頁應用 (Web Application)所開發應用套件。 透過 LIFF 除了可以快速做相關的 LINE Login 取得使用者資訊,更可以將有趣的資訊直接在網頁上分享給你 LINE 的好友。
本次的主題希望同學們能發揮想像力,透過 LIFF 來開發出一個令人為之讚嘆(WoW) 的應用服務。
更多 LIFF 的相關開發文件請參考: https://developers.line.biz/en/docs/liff/
❞
📍LINE賽前工作坊將會學習到:
1. LIFF 介紹
2. 如何設定 LIFF (LINE dev center)
3. 創建自己的 LIFF app (使用liff starter)
4. LIFF 實作範例 1
5. LIFF 實作範例 2
📍參加LINE工作坊建議可以預先準備:
1. github帳號(需要git clone範例)
2. Node.js環境(v10 or v12)
3. 熟悉的IDE
🔽現在就來報名梅竹黑客松和賽前工作坊吧🔽
https://signup.meichuhackathon.org/
(建議使用電腦瀏覽網站)
---------------------------------
〔合作企業〕 LINE、羅技電子、台灣美光、意法半導體、Girls in Tech
〔贊助企業〕 AWS、曉數碼、國泰金控、Google、中華電信、原相科技、PChome、104資訊科技、Nokia
「node.js ide」的推薦目錄:
- 關於node.js ide 在 梅竹黑客松 Facebook 的精選貼文
- 關於node.js ide 在 91 敏捷開發之路 Facebook 的最佳解答
- 關於node.js ide 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
- 關於node.js ide 在 Eclipse Node.js IDE - Nodeclipse, Enide 的評價
- 關於node.js ide 在 Eclipse Node.js IDE - p2f and knowledge base - GitHub 的評價
- 關於node.js ide 在 A JS Node.js IDE - GitHub Wiki SEE 的評價
- 關於node.js ide 在 Debug node.js backend application with an IDE, eg WebStorm 的評價
- 關於node.js ide 在 Node.js IDE for Windows and Linux - Software ... 的評價
node.js ide 在 91 敏捷開發之路 Facebook 的最佳解答
明天要去企業內訓(猜猜哪一間),又得開一排 IDE 了。
搞不好單元測試明年可以支援 node.js 跟 Ruby 了。
但支援七種(含 Kotlin) 該怎麼上課,就真的有點頭大了...
node.js ide 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
Functional programming ชื่อไทยคือ “การโปรแกรมเชิงฟังก์ชั่น” ชื่อย่อ FP เป็นแนวคิดหนึ่งของการเขียนโปรแกรม (programming paradigm) ชื่อขึ้นต้นด้วย functional แต่ไม่ได้มีดีแค่ประกาศ function ปุ๊บเสร็จ แล้วเรียกใช้ มันมีเบื้องลึกมากกว่านั้นแน่ๆ
🤔 มันจะต่างจากการเขียนโปรแกรมทีละสเตป ตามลำดับก่อนหลัง มีการวนลูป ที่เน้นแก้ state ของโปรแกรมเป็นหลัก
แต่แนวทาง functional programming จะไม่แก้ state ของโปรแกรมเลย ไม่มีการวนลูบ (ใช้ recursion แทน)
ซึ่งแนวคิดก็ต้องเน้นสร้างฟังก์ชั่นนั่นแหละ แต่หลักสำคัญต้องออกแบบให้หลีกเลี่ยง side-effect (ผลข้างเคียง) ที่จะเกิดต่อ function ตัวเอง และตัวอื่น โดยมีหลักยึด 2 อย่างใหญ่คือ
👉 1) function ที่สร้างขึ้นมา เมื่อมีอินพุตค่าเดิมส่งไปหา (เป็นค่าอากิวเมนต์) ไม่ว่าจะกี่ครั้งก็ตาม function จะรีเทิร์นค่าออกมาเหมือนเดิมทุกครั้ง ...(ไอเดียมาจากฟังก์ชั่นในทางคณิตศาสตร์เลยครับ)
เช่น
func(1); // เรียกครั้งที่ 1 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30
func(1); // เรียกครั้งที่ 2 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30 เหมือนเดิม
func(1); // เรียกครั้งที่ 3 ก็จะได้ค่ารีเทิร์นออกมาเป็น 30 เหมือนเดิม
👉 2) function ต้องไม่ไปเปลี่ยนแปลงค่าของตัวแปรจำพวก global variable หรือ static variable หรือตัวแปรที่อยู่ข้างนอก function ...เพื่อไม่ให้ function อื่นได้รับผลกระทบ
ถ้า function ที่เราประกาศไว้ มีคุณสมบัติ 2 อย่างที่ว่านี้ ก็จะเรียกว่า pure function (ฟังก์ชั่นบริสุทธ์แท้ๆ) 👌
สำหรับอีกคุณลักษณะหนึ่งที่จะไม่กล่าวถึงไม่ได้เลยก็คือ
👉 3) First-class function และ Higher-order function
คำว่า first-class function มาจาก "first class citizen" ที่หมายถึง "พลเมืองชั้นหนึ่ง" ดังนั้น first-class function จะหมายถึง ฟังก์ชั่นเป็นพลเมืองชั้นหนึ่งจริงๆ เลยนะ
คุณสมบัตินี้ function จะถูกมองเป็นข้อมูลประเภทหนึ่ง ไม่ต่างจากข้อมูลตัวเลข สตริง บูลีน ด้วยเหตุนี้จึงสามารถนำ function ไปกำหนดค่าให้กับตัวแปรยังได้เลย เช่น
x = function(){ .....}
ส่วนคุณสมบัติ Higher-order function:
คุณสมบัตินี้หมายถึง เราสามารถใช้ function ส่งไปเป็นค่าอากิวเมนต์แก่ function ตัวอื่น หรือ function จะรีเทิร์นออกมาจาก function ตัวอื่นออกมาก็ได้ด้วย เช่น
- ส่ง function_A เป็นค่าอากิวเมนต์ไปให้ function_X(function_A);
- จากนั้น function_X() ก็จะสร้าง function_Y แล้วรีเทิร์นมันออกมาได้
😜 ===ประโยชน์ functional programming===
🔥 เอาไปเขียนโปรแกรมโดยไม่มีการวนลูป เช่น ไม่ต้องมานั่งเขียน for … หรือ while… วนลูป เพื่อเข้าถึงข้อมูลโครงสร้างพวก array , list ฯลฯ เป็นต้น
🔥 การทำ currying หมายถึงทำให้ฟังก์ชั่น จากเดิมที่มี parameter หลายตัวให้เหลือแค่ตัวเดียว ด้วยการส่งผลลัพธ์เป็น function ที่รับ Parameter ที่เหลือ ...ใช้เทคนิค closure
🔥 หรือจะทำ function Composition (เอาฟังก์ชั่นมาประกอบกัน)
🔥 หรือจะเอาไปใช้เขียนโปรแกรมแบบ parallel computing (โปรแกรมคู่ขนาน)
🔥 หรือจะเขียนโปรแกรมแบบ asynchronous โดยที่โค้ดหลักไม่ต้องรอการประมวลผลฝั่ง I/O ให้แล้วเสร็จ โค้ดหลักสามารถข้ามไปยังบรรทัดถัดไปก่อนได้เลย
🔥 Testability — ผลพลอยได้ก็คือ เอาแนวคิดนี้ไปใช้ทำ test function ได้ง่าย โดยแต่ละการ test จะเป็นอิสระต่อกัน เมื่อใช้วิธีการเดิมในการทดสอบ 10 ครั้ง ก็ควรได้ผลเหมือนเดิม 10 ครั้ง เป็นต้น
++++ 🤔 ++++++
เมื่อเปรียบเทียบกับแนวคิด OOP (โปรแกรมเชิงวัตถุ object-oriented programming)
ถ้าโจทย์ปัญหาเป็น parallel computing หรือ asynchronous การใช้แนวคิด functional programming ดูแล้วคล่องแคล่วปราดเปรียวไม่ยุ่งยาก
เนื่องจากแนวคิด functional programming ไม่มีอะไรซับซ้อนมากนัก เขียนโปรแกรมก็จะกระชับ ง่าย...ง๊าย เมื่อเทียบกับ OOP ที่โค้ดจะเยอะกว่า เพราะมี class มากมาย ยิ่งถ้า inheritance โดยให้มีการสืบทอดสมาชิกหลายชั้น ก็จะสับสนตาลาย มึนงงได้ คงต้องพึ่ง IDE ให้เป็นพี่เลี้ยงช่วยแนะนำว่ามีสมาชิกอะไรที่สืบทอดมา
แต่จุดเด่นเรื่อง OOP จะมีความเป็น Modularity ที่สูง โค้ดที่เขียนเป็นอ็อบเจ็กต์แต่ละตัวจะเป็นอิสระต่อกัน เนื่องจากข้อมูลหรือ state ซึ่งอยู่ภายในตัวอ็อบเจ็กต์เอง จะมีเป็นของใครของมัน ขณะเดียวกันแต่ละอ็อบเจ็กต์จะปฏิสัมพันธ์กันได้ สามารถเอาอ็อบเจ็กต์ที่มีอยู่แล้วมา reuse ใช้ได้ง่าย รวมทั้งถอดเข้าถอดออกขณะโปรแกรม run time
แล้วแต่สถานการณ์ว่าจะใช้แนวทางเขียนโปรแกรมแบบไหน
แต่ก็ยอมรับว่าบางทีเขียนแบบ functional programming ก็ยากต่อการทำความเข้าใจ เพราะโค้ดมันสั้นกระชับเกิ๊น
ยิ่งหลายภาษาโปรแกรมมิ่งสมัยใหม่ในปัจจุบันนี้ มีการแทรกแนวคิด functional programming เข้ามา นอกเหนือจากแนวคิด OOP เช่น JavaScript, Python, Java, C#, Swift, Kotlin แต่ก็อาจประยุกต์แนวคิดนี้ได้ไม่ 100% มากนัก
จะไม่เหมือนบ้างภาษาเช่น Haskell ที่มาพร้อมกับ immutable data structure หมายถึงข้อมูลที่ไม่สามารถแก้ไขค่าได้เลย จึงทำให้ function กลายเป็น functional programming แท้ๆ (pure function)
✍ สรุป แนวคิดนี้ไม่ได้เรื่องใหม่มีมานานก่อนบางคน ...อุ้แว ...อุ้แวเกิดเสียอีก แต่ตอนโน่นแนวคิดนี้ยังไม่ดังเปรี้ยงเหมือน OOP คนที่เขียนภาษา JavaScript รวมไปถึง Node.js ย่อมใช้หลักการนี้อย่างไม่รู้ตัว ยิ่งภาษาสมัยใหม่หลายตัวก็ยอมรับแนวคิด functional programming เข้ามาในภาษาเรียบร้อยแล้ว ไม่มีนี้ถือว่าแปลกมาก
--------
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
node.js ide 在 Eclipse Node.js IDE - p2f and knowledge base - GitHub 的推薦與評價
Eclipse Node IDE is set of plugins for Eclipse IDE to help you with Node.js development. The core plugin is Nodeclipse-1 (sources), that is responsible for ... ... <看更多>
node.js ide 在 A JS Node.js IDE - GitHub Wiki SEE 的推薦與評價
A JS Node.js IDE. Original URL: https://github.com/Nodeclipse/www.nodeclipse.org/wiki/A-JS-Node.js-IDE · Visit Original URL. ... <看更多>
node.js ide 在 Eclipse Node.js IDE - Nodeclipse, Enide 的推薦與評價
Enide - Eclipse Node.js IDE. For Eclipse package distribution, check Enide 2015. Latest version is shown on Marketplace. ... <看更多>