สวัสดีทุกคน! วันนี้เราต้องการนำเสนอผลิตภัณฑ์ของเราต่อสาธารณชนด้านไอที - IDE สำหรับการทำงานกับ API
แรงจูงใจ
ฉันอยากจะเริ่มต้นด้วยการที่เราเข้ามาในชีวิตนี้และตัดสินใจสร้างเครื่องมือของเราเองสำหรับงานขั้นสูงกับ API เริ่มจากรายการฟังก์ชันที่ผลิตภัณฑ์ควรมี ซึ่งในความเห็นของเรา เราสามารถพูดได้ว่าเป็น "IDE สำหรับการทำงานกับ API":
- การสร้างและดำเนินการแบบสอบถามและสคริปต์ (ลำดับของแบบสอบถาม)
- การเขียนข้อสอบประเภทต่างๆ
- รุ่นทดสอบ
- การทำงานกับคำอธิบาย API รวมถึงการนำเข้าจากรูปแบบต่างๆ เช่น Swagger, OpenAPI, WADL เป็นต้น
- คำขอเยาะเย้ย
- รองรับภาษาตั้งแต่หนึ่งภาษาขึ้นไปสำหรับการเขียนสคริปต์ รวมถึงการบูรณาการกับไลบรารียอดนิยม
- เป็นต้น
รายการสามารถขยายได้เพื่อให้เหมาะกับรสนิยมของคุณ ยิ่งไปกว่านั้น สิ่งสำคัญคือต้องสร้างไม่เพียงแต่ IDE เท่านั้น แต่ยังรวมถึงโครงสร้างพื้นฐานบางอย่างด้วย เช่น การซิงโครไนซ์บนคลาวด์ เครื่องมือบรรทัดคำสั่ง บริการตรวจสอบออนไลน์ เป็นต้น ในท้ายที่สุดแนวโน้มของปีที่ผ่านมาไม่เพียงกำหนดให้เราทราบถึงฟังก์ชันการทำงานอันทรงพลังของแอปพลิเคชันเท่านั้น แต่ยังรวมถึงอินเทอร์เฟซที่น่าพึงพอใจด้วย
ใครต้องการเครื่องมือเช่นนี้? เห็นได้ชัดว่าทุกคนที่มีส่วนเกี่ยวข้องกับการพัฒนาและทดสอบ API เป็นอย่างน้อยคือนักพัฒนาและผู้ทดสอบ =) ยิ่งกว่านั้นหากสำหรับอย่างแรกมักจะเพียงพอที่จะดำเนินการคิวรีเดี่ยวและสคริปต์ง่าย ๆ สำหรับผู้ทดสอบนี่เป็นหนึ่งในเครื่องมือหลักซึ่งเหนือสิ่งอื่นใดควรรวมกลไกอันทรงพลังสำหรับการเขียนการทดสอบที่มีความสามารถในการเรียกใช้ ซีไอ.
ดังนั้นเราจึงเริ่มสร้างผลิตภัณฑ์ของเราตามหลักเกณฑ์เหล่านี้ มาดูกันว่าเราได้ความสำเร็จอะไรบ้างในขั้นตอนนี้
เริ่มต้นอย่างรวดเร็ว
มาเริ่มกันที่ความคุ้นเคยก่อนกับแอปพลิเคชัน คุณสามารถดาวน์โหลดได้
คลิกที่เครื่องหมายบวกที่ด้านบนของพื้นที่เนื้อหาเพื่อสร้างคำขอแรกของคุณ แท็บแบบสอบถามมีลักษณะดังนี้:
มาดูรายละเอียดเพิ่มเติมกันดีกว่า อินเทอร์เฟซคำขอคล้ายกับอินเทอร์เฟซของไคลเอ็นต์ส่วนที่เหลือยอดนิยม ซึ่งทำให้การย้ายจากเครื่องมือที่คล้ายกันง่ายขึ้น มาส่งคำขอแรกไปที่ url
โดยทั่วไปเมื่อมองแวบแรก แผงตอบกลับก็ไม่ทำให้เกิดความประหลาดใจใดๆ เช่นกัน อย่างไรก็ตาม ฉันอยากจะดึงความสนใจของคุณไปยังบางประเด็น:
- เนื้อความของการตอบกลับจะแสดงในรูปแบบของต้นไม้ ซึ่งขั้นแรกจะเพิ่มเนื้อหาข้อมูล และประการที่สองให้คุณเพิ่มคุณลักษณะที่น่าสนใจบางอย่างเกี่ยวกับสิ่งต่อไปนี้
- มีแท็บการยืนยันซึ่งแสดงรายการการทดสอบสำหรับคำขอที่กำหนด
อย่างที่คุณเห็น เครื่องมือของเราสามารถใช้เป็นไคลเอนต์พักผ่อนที่สะดวกสบายได้ อย่างไรก็ตาม เราจะไม่อยู่ที่นี่หากความสามารถของมันถูกจำกัดเพียงการส่งคำขอเท่านั้น ต่อไป ฉันจะสรุปแนวคิดพื้นฐานและฟังก์ชันการทำงานของ TestMace
แนวคิดและคุณสมบัติพื้นฐาน
ปม
ฟังก์ชั่น TestMace แบ่งออกเป็นโหนดประเภทต่างๆ ในตัวอย่างข้างต้น เราได้สาธิตการทำงานของโหนด RequestStep อย่างไรก็ตาม ขณะนี้มีโหนดประเภทต่อไปนี้ในแอปพลิเคชันด้วย:
- คำขอขั้นตอน นี่คือโหนดที่คุณสามารถสร้างคำขอได้ สามารถมีโหนดการยืนยันเป็นองค์ประกอบลูกได้เพียงโหนดเดียวเท่านั้น
- การยืนยัน โหนดถูกใช้เพื่อเขียนการทดสอบ สามารถเป็นโหนดลูกของโหนด RequestStep ได้เท่านั้น
- โฟลเดอร์ อนุญาตให้คุณจัดกลุ่มโฟลเดอร์และโหนด RequestStep ภายในตัวเอง
- โครงการ. นี่คือโหนดรูทที่สร้างขึ้นโดยอัตโนมัติเมื่อมีการสร้างโปรเจ็กต์ มิฉะนั้น จะทำซ้ำฟังก์ชันการทำงานของโหนดโฟลเดอร์
- ลิงค์. ลิงก์ไปยังโฟลเดอร์หรือโหนด RequestStep ช่วยให้คุณสามารถใช้คำค้นหาและสคริปต์ซ้ำได้
- เป็นต้น
โหนดอยู่ในรอยขีดข่วน (แผงที่ด้านซ้ายล่าง ใช้สำหรับสร้างคำสั่ง "ครั้งเดียว" อย่างรวดเร็ว) และในโปรเจ็กต์ (แผงที่ด้านซ้ายบน) ซึ่งเราจะกล่าวถึงรายละเอียดเพิ่มเติม
โครงการ
เมื่อคุณเปิดแอปพลิเคชัน คุณอาจสังเกตเห็นบรรทัดโครงการเดียวที่มุมซ้ายบน นี่คือรากของแผนผังโครงการ เมื่อคุณเริ่มโปรเจ็กต์ โปรเจ็กต์ชั่วคราวจะถูกสร้างขึ้น โดยเส้นทางจะขึ้นอยู่กับระบบปฏิบัติการของคุณ คุณสามารถย้ายโครงการไปยังสถานที่ที่คุณสะดวกได้ตลอดเวลา
วัตถุประสงค์หลักของโครงการคือความสามารถในการบันทึกการพัฒนาในระบบไฟล์และซิงโครไนซ์เพิ่มเติมผ่านระบบควบคุมเวอร์ชัน เรียกใช้สคริปต์ใน CI ตรวจสอบการเปลี่ยนแปลง ฯลฯ
ตัวแปร
ตัวแปรเป็นหนึ่งในกลไกสำคัญของแอปพลิเคชัน บรรดาผู้ที่ทำงานกับเครื่องมืออย่าง TestMace อาจมีความคิดเกี่ยวกับสิ่งที่เรากำลังพูดถึงอยู่แล้ว ดังนั้นตัวแปรจึงเป็นวิธีการจัดเก็บข้อมูลทั่วไปและสื่อสารระหว่างโหนด อะนาล็อก เช่น ตัวแปรสภาพแวดล้อมในบุรุษไปรษณีย์หรือโรคนอนไม่หลับ อย่างไรก็ตาม เราได้พัฒนาหัวข้อนี้ต่อไป ใน TestMace คุณสามารถตั้งค่าตัวแปรที่ระดับโหนดได้ ใดๆ. นอกจากนี้ยังมีกลไกในการสืบทอดตัวแปรจากบรรพบุรุษและตัวแปรที่ทับซ้อนกันในลูกหลาน นอกจากนี้ยังมีตัวแปรบิวท์อินจำนวนหนึ่ง ชื่อของตัวแปรบิวท์อินจะขึ้นต้นด้วย $
. นี่คือบางส่วนของพวกเขา:
$prevStep
— ลิงก์ไปยังตัวแปรของโหนดก่อนหน้า$nextStep
— เชื่อมโยงไปยังตัวแปรของโหนดถัดไป$parent
- สิ่งเดียวกัน แต่สำหรับบรรพบุรุษเท่านั้น$response
- การตอบสนองจากเซิร์ฟเวอร์$env
- ตัวแปรสภาพแวดล้อมปัจจุบัน$dynamicVar
- ตัวแปรไดนามิกที่สร้างขึ้นระหว่างการดำเนินการสคริปต์หรือแบบสอบถาม
$env
- สิ่งเหล่านี้โดยพื้นฐานแล้วเป็นตัวแปรระดับโหนดโครงการธรรมดา อย่างไรก็ตาม ชุดของตัวแปรสภาพแวดล้อมจะเปลี่ยนแปลงขึ้นอยู่กับสภาพแวดล้อมที่เลือก
เข้าถึงตัวแปรได้ทาง ${variable_name}
ค่าของตัวแปรอาจเป็นตัวแปรอื่น หรือแม้แต่นิพจน์ทั้งหมดก็ได้ ตัวอย่างเช่น ตัวแปร url สามารถเป็นนิพจน์ได้ เช่น
http://${host}:${port}/${endpoint}
.
เป็นเรื่องน่าสังเกตว่ามีความเป็นไปได้ในการกำหนดตัวแปรระหว่างการเรียกใช้สคริปต์ ตัวอย่างเช่น มักจะจำเป็นต้องบันทึกข้อมูลการอนุญาต (โทเค็นหรือส่วนหัวทั้งหมด) ที่มาจากเซิร์ฟเวอร์หลังจากเข้าสู่ระบบสำเร็จ TestMace ช่วยให้คุณสามารถบันทึกข้อมูลดังกล่าวลงในตัวแปรไดนามิกของบรรพบุรุษคนใดคนหนึ่ง เพื่อหลีกเลี่ยงการชนกับตัวแปร “คงที่” ที่มีอยู่แล้ว ตัวแปรไดนามิกจะถูกวางไว้ในวัตถุที่แยกต่างหาก $dynamicVar
.
สถานการณ์
การใช้คุณสมบัติข้างต้นทั้งหมดทำให้คุณสามารถเรียกใช้สคริปต์การสืบค้นทั้งหมดได้ ตัวอย่างเช่น การสร้างเอนทิตี -> การสอบถามเอนทิตี -> การลบเอนทิตี ในกรณีนี้ ตัวอย่างเช่น คุณสามารถใช้โหนดโฟลเดอร์เพื่อจัดกลุ่มโหนด RequestStep หลายรายการได้
การเติมข้อความอัตโนมัติและการเน้นนิพจน์
เพื่อความสะดวกในการทำงานกับตัวแปร (และไม่เพียงเท่านั้น) จำเป็นต้องเติมข้อความอัตโนมัติ และแน่นอนว่าเป็นการเน้นค่าของนิพจน์เพื่อให้ง่ายขึ้นและสะดวกยิ่งขึ้นในการชี้แจงว่าตัวแปรใดมีค่าเท่ากับตัวแปรใด ย่อมเป็นเช่นนั้น เมื่อเห็นเพียงครั้งเดียว ย่อมดีกว่าได้ยินร้อยครั้ง:
เป็นที่น่าสังเกตว่ามีการใช้การเติมข้อความอัตโนมัติไม่เพียง แต่สำหรับตัวแปรเท่านั้น แต่ยังรวมถึงค่าของส่วนหัวบางค่าสำหรับส่วนหัว (เช่นการเติมข้อความอัตโนมัติสำหรับส่วนหัวประเภทเนื้อหา) โปรโตคอลและอื่น ๆ อีกมากมาย รายการจะได้รับการอัปเดตอย่างต่อเนื่องเมื่อแอปพลิเคชันเติบโตขึ้น
ยกเลิกทำซ้ำ
การเลิกทำ/ทำซ้ำการเปลี่ยนแปลงเป็นสิ่งที่สะดวกมาก แต่ด้วยเหตุผลบางประการจึงไม่ได้นำไปใช้ทุกที่ (และเครื่องมือสำหรับการทำงานกับ API ก็ไม่มีข้อยกเว้น) แต่เราไม่ใช่หนึ่งในนั้น!) เราได้ดำเนินการเลิกทำ/ทำซ้ำตลอดทั้งโปรเจ็กต์ ซึ่งช่วยให้คุณเลิกทำไม่เพียงแต่แก้ไขโหนดเฉพาะเท่านั้น แต่ยังรวมถึงการสร้าง การลบ การเคลื่อนไหว ฯลฯ ด้วย การดำเนินการที่สำคัญที่สุดจำเป็นต้องได้รับการยืนยัน
การสร้างแบบทดสอบ
โหนดการยืนยันมีหน้าที่สร้างการทดสอบ หนึ่งในคุณสมบัติหลักคือความสามารถในการสร้างการทดสอบโดยไม่ต้องเขียนโปรแกรมโดยใช้โปรแกรมแก้ไขในตัว
โหนดการยืนยันประกอบด้วยชุดของการยืนยัน การยืนยันแต่ละครั้งมีประเภทของตัวเอง ในขณะนี้ การยืนยันมีหลายประเภท
-
เปรียบเทียบค่า - เพียงเปรียบเทียบ 2 ค่า มีตัวดำเนินการเปรียบเทียบหลายตัว: เท่ากับ ไม่เท่ากับ มากกว่า มากกว่าหรือเท่ากับ น้อยกว่า น้อยกว่าหรือเท่ากับ
-
มีค่า - ตรวจสอบการเกิดขึ้นของสตริงย่อยในสตริง
-
XPath - ตรวจสอบว่าตัวเลือกใน XML มีค่าที่แน่นอน
-
การยืนยัน JavaScript เป็นสคริปต์จาวาสคริปต์ที่กำหนดเองซึ่งส่งคืนค่าจริงเมื่อสำเร็จและค่าเท็จเมื่อล้มเหลว
ฉันทราบว่าเฉพาะอันสุดท้ายเท่านั้นที่ต้องใช้ทักษะการเขียนโปรแกรมจากผู้ใช้ ส่วนการยืนยันอีก 3 รายการนั้นถูกสร้างขึ้นโดยใช้อินเทอร์เฟซแบบกราฟิก ตัวอย่างเช่นนี่คือสิ่งที่กล่องโต้ตอบสำหรับการสร้างการยืนยันค่าเปรียบเทียบมีลักษณะดังนี้:
ไอซิ่งบนเค้กคือการสร้างการยืนยันอย่างรวดเร็วจากการตอบกลับ ลองดูสิ!
อย่างไรก็ตาม การยืนยันดังกล่าวมีข้อจำกัดที่ชัดเจน ซึ่งคุณอาจต้องการใช้การยืนยันด้วยจาวาสคริปต์เพื่อเอาชนะ และที่นี่ TestMace ยังมีสภาพแวดล้อมที่สะดวกสบายด้วยการเติมข้อความอัตโนมัติ การเน้นไวยากรณ์ และแม้แต่ตัววิเคราะห์แบบคงที่
คำอธิบาย API
TestMace ช่วยให้คุณไม่เพียงแต่ใช้ API เท่านั้น แต่ยังรวมถึงการจัดทำเอกสารด้วย นอกจากนี้ คำอธิบายยังมีโครงสร้างแบบลำดับชั้นและเข้ากันได้อย่างลงตัวกับส่วนที่เหลือของโปรเจ็กต์ นอกจากนี้ ปัจจุบันยังสามารถนำเข้าคำอธิบาย API จากรูปแบบ Swagger 2.0 / OpenAPI 3.0 ได้อีกด้วย คำอธิบายนั้นไม่เพียงแต่มีน้ำหนักตายตัวเท่านั้น แต่ยังรวมเข้ากับส่วนที่เหลือของโปรเจ็กต์อย่างใกล้ชิด โดยเฉพาะอย่างยิ่งการเติม URL อัตโนมัติ ส่วนหัว HTTP พารามิเตอร์การสืบค้น ฯลฯ พร้อมใช้งาน และในอนาคตเราวางแผนที่จะเพิ่มการทดสอบ เพื่อให้สอดคล้องกับคำอธิบาย API
โหนดการแชร์
กรณี: คุณต้องการแบ่งปันคำขอที่มีปัญหา หรือแม้แต่สคริปต์ทั้งหมดกับเพื่อนร่วมงาน หรือเพียงแนบไปกับข้อบกพร่อง TestMace ครอบคลุมกรณีนี้ด้วย: แอปพลิเคชันอนุญาตให้คุณซีเรียลไลซ์โหนดใด ๆ และแม้แต่แผนผังย่อยใน URL คัดลอกและวางและคุณสามารถถ่ายโอนคำขอไปยังเครื่องหรือโปรเจ็กต์อื่นได้อย่างง่ายดาย
รูปแบบการจัดเก็บโครงการที่มนุษย์สามารถอ่านได้
ในขณะนี้ แต่ละโหนดจะถูกจัดเก็บไว้ในไฟล์แยกต่างหากซึ่งมีนามสกุล yml (เช่นเดียวกับในกรณีของโหนด Assertion) หรือในโฟลเดอร์ที่มีชื่อของโหนดและไฟล์ index.yml อยู่ในนั้น
ตัวอย่างเช่น นี่คือลักษณะของไฟล์คำขอที่เราทำในการตรวจสอบด้านบน:
ดัชนี.yml
children: []
variables: {}
type: RequestStep
assignVariables: []
requestData:
request:
method: GET
url: 'https://next.json-generator.com/api/json/get/NJv-NT-U8'
headers: []
disabledInheritedHeaders: []
params: []
body:
type: Json
jsonBody: ''
xmlBody: ''
textBody: ''
formData: []
file: ''
formURLEncoded: []
strictSSL: Inherit
authData:
type: inherit
name: Scratch 1
อย่างที่คุณเห็นทุกอย่างชัดเจนมาก หากต้องการ คุณสามารถแก้ไขรูปแบบนี้ด้วยตนเองได้อย่างง่ายดาย
ลำดับชั้นของโฟลเดอร์ในระบบไฟล์จะทำซ้ำลำดับชั้นของโหนดในโครงการโดยสมบูรณ์ ตัวอย่างเช่น สคริปต์เช่น:
แมประบบไฟล์กับโครงสร้างต่อไปนี้ (แสดงเฉพาะลำดับชั้นของโฟลเดอร์ แต่สาระสำคัญชัดเจน)
ทำให้กระบวนการตรวจสอบโครงการง่ายขึ้น
นำเข้าจากบุรุษไปรษณีย์
หลังจากอ่านทั้งหมดข้างต้นแล้ว ผู้ใช้บางคนอาจอยากลอง (ใช่ไหม?) ผลิตภัณฑ์ใหม่ หรือ (ไม่ได้ล้อเล่นนะ!) ใช้มันในโครงการของตนโดยสิ้นเชิง อย่างไรก็ตาม การโยกย้ายสามารถหยุดได้ด้วยการพัฒนาจำนวนมากในบุรุษไปรษณีย์คนเดียวกัน ในกรณีเช่นนี้ TestMace รองรับการนำเข้าคอลเลกชันจากบุรุษไปรษณีย์ ในขณะนี้ รองรับการนำเข้าโดยไม่มีการทดสอบ แต่เราไม่ได้ตัดทอนการสนับสนุนในอนาคต
แผน
ฉันหวังว่าหลายๆ คนที่อ่านมาถึงจุดนี้จะชอบผลิตภัณฑ์ของเรา อย่างไรก็ตาม นั่นไม่ใช่ทั้งหมด! การพัฒนาผลิตภัณฑ์อยู่ระหว่างดำเนินการอย่างเต็มที่ และนี่คือคุณลักษณะบางอย่างที่เราวางแผนจะเพิ่มในเร็วๆ นี้
การซิงค์บนคลาวด์
หนึ่งในคุณสมบัติที่ได้รับการร้องขอมากที่สุด ในขณะนี้ เราเสนอให้ใช้ระบบควบคุมเวอร์ชันสำหรับการซิงโครไนซ์ ซึ่งเรากำลังทำให้รูปแบบที่เป็นมิตรมากขึ้นสำหรับพื้นที่เก็บข้อมูลประเภทนี้ อย่างไรก็ตาม ขั้นตอนการทำงานนี้ไม่เหมาะสำหรับทุกคน ดังนั้นเราจึงวางแผนที่จะเพิ่มกลไกการซิงโครไนซ์ที่คนจำนวนมากคุ้นเคยผ่านทางเซิร์ฟเวอร์ของเรา
CLI
ตามที่กล่าวไว้ข้างต้น ผลิตภัณฑ์ระดับ IDE ไม่สามารถทำได้หากไม่มีการผสานรวมทุกประเภทกับแอปพลิเคชันหรือเวิร์กโฟลว์ที่มีอยู่ CLI คือสิ่งที่จำเป็นสำหรับการรวมการทดสอบที่เขียนใน TestMace เข้ากับกระบวนการบูรณาการอย่างต่อเนื่อง งานเกี่ยวกับ CLI กำลังดำเนินไปอย่างเต็มรูปแบบ เวอร์ชันแรกๆ จะเปิดตัวโปรเจ็กต์ด้วยรายงานคอนโซลแบบธรรมดา ในอนาคตเราวางแผนที่จะเพิ่มเอาต์พุตรายงานในรูปแบบ JUnit
ระบบปลั๊กอิน
แม้ว่าเครื่องมือของเราจะมีพลังทั้งหมด แต่ชุดของเคสที่ต้องการโซลูชันก็ไร้ขีดจำกัด ท้ายที่สุดแล้ว มีงานเฉพาะสำหรับโครงการใดโครงการหนึ่ง นั่นคือเหตุผลที่ในอนาคตเราวางแผนที่จะเพิ่ม SDK สำหรับการพัฒนาปลั๊กอิน และนักพัฒนาแต่ละรายจะสามารถเพิ่มฟังก์ชันการทำงานได้ตามต้องการ
การขยายขอบเขตของประเภทโหนด
ชุดโหนดนี้ไม่ครอบคลุมทุกกรณีที่ผู้ใช้ต้องการ โหนดที่วางแผนจะเพิ่ม:
- โหนดสคริปต์ - แปลงและวางข้อมูลโดยใช้ js และ API ที่เกี่ยวข้อง เมื่อใช้โหนดประเภทนี้ คุณสามารถทำสิ่งต่างๆ เช่น สคริปต์คำขอล่วงหน้าและหลังคำขอในบุรุษไปรษณีย์
- โหนด GraphQL - รองรับ Graphql
- โหนดการยืนยันแบบกำหนดเอง - จะช่วยให้คุณสามารถขยายชุดการยืนยันที่มีอยู่ในโปรเจ็กต์ได้
โดยปกติแล้ว นี่ไม่ใช่รายการสุดท้าย แต่จะมีการอัปเดตอย่างต่อเนื่องเนื่องจากความคิดเห็นของคุณ เหนือสิ่งอื่นใด
คำถามที่พบบ่อย
คุณแตกต่างจากบุรุษไปรษณีย์อย่างไร?
- แนวคิดของโหนดซึ่งช่วยให้คุณสามารถขยายฟังก์ชันการทำงานของโครงการได้แทบไม่สิ้นสุด
- รูปแบบโปรเจ็กต์ที่มนุษย์สามารถอ่านได้พร้อมการบันทึกลงในระบบไฟล์ ซึ่งช่วยให้การทำงานง่ายขึ้นโดยใช้ระบบควบคุมเวอร์ชัน
- ความสามารถในการสร้างการทดสอบโดยไม่ต้องเขียนโปรแกรมและการสนับสนุน js ขั้นสูงเพิ่มเติมในตัวแก้ไขการทดสอบ (การเติมข้อความอัตโนมัติ ตัววิเคราะห์แบบคงที่)
- การเติมข้อความอัตโนมัติขั้นสูงและการเน้นค่าปัจจุบันของตัวแปร
นี่เป็นผลิตภัณฑ์โอเพ่นซอร์สหรือไม่
ไม่ ขณะนี้แหล่งที่มาปิดอยู่ แต่ในอนาคต เรากำลังพิจารณาความเป็นไปได้ในการเปิดแหล่งที่มา
คุณมีชีวิตอยู่เพื่ออะไร?)
นอกเหนือจากเวอร์ชันฟรีแล้ว เราวางแผนที่จะเผยแพร่ผลิตภัณฑ์เวอร์ชันที่ต้องชำระเงิน โดยส่วนใหญ่จะรวมสิ่งที่ต้องใช้ฝั่งเซิร์ฟเวอร์ เช่น การซิงโครไนซ์
ข้อสรุป
โครงการของเรากำลังดำเนินไปอย่างก้าวกระโดดไปสู่การเปิดตัวอย่างมั่นคง อย่างไรก็ตาม ผลิตภัณฑ์สามารถใช้งานได้แล้ว และการตอบรับเชิงบวกจากผู้ใช้ในช่วงแรกๆ ของเราเป็นข้อพิสูจน์ในเรื่องนี้ เรารวบรวมคำติชมอย่างแข็งขัน เนื่องจากหากไม่มีความร่วมมืออย่างใกล้ชิดกับชุมชน เป็นไปไม่ได้ที่จะสร้างเครื่องมือที่ดี คุณสามารถหาเราได้ที่นี่:
เราหวังว่าจะได้รับความปรารถนาและข้อเสนอแนะของคุณ!
ที่มา: will.com