This commit is contained in:
Matt Decker 2022-06-26 19:05:06 -05:00
commit 0610ce9f85
3 changed files with 34 additions and 39 deletions

27
Dev-Env-Setup.md Normal file
View File

@ -0,0 +1,27 @@
# Development Environment Setup
The following instructions will help you set up your development for our mob session. It is important that the dev environment is set up PRIOR to the mob session.
The mob session will likely take several hours and not having the dev environment set up prior will likely add a few more hours.
1. Clone this repo to the place of your choice
- From the main repo screen, copy the https code for this repo.
- From command line: cd <destination you wish to store the local project folder>
- Once you verify you are in the file path that you want: git clone <past https code copied from repo>
- You will now recieve text from the command line letting you know the objects were recieved.
2. Download Visual Studio Code (I chose to use Visual Studio Code for Junit integration but other IDEs will work as well). If you choose a different set up, please **verify** it works before the mob!
- If you choose to download Visual Studio Code, please use the following link: https://code.visualstudio.com/download
- If you already have VS Code installed, from command line: "code -v" will let you know what version you have.
- We must now download the appropriate Java Extensions for VS Code
- On the left hand task bar, click the extensions button (Looks like a square with for quadrants and one of the quadrants is being removed).
- Search "Extension Pack for Java" and you should see the Extension Pack for Java by Microsoft appear. Click the "Install" button.
3. Download Java SE and Verify it is Installed
- In the command line: java -version (this will let you know if java is installed and what version you have.
- If you do not have Java installed, go to: https://www.oracle.com/java/technologies/downloads/ and follow the download/setup instructions.
- To check if you need to update Java SE: type "Configure Java" in the search bar of Windows 10.
- Run the application
- Click the "Update Tab"
- Click "Update Now" at the bottom of the screen.
- Java SE should now be updated.
4. Download JUnit
- Click: https://github.com/junit-team/junit4/wiki/Download-and-Install
-This will download the .jar required. Click the download and follow set up instructions.

View File

@ -1,37 +0,0 @@
# ข้อกำหนดความต้องการของระบบ Gilded Rose
ยินดีต้อนรับสู่ทีม Gilded Rose อย่างที่คุณทราบแล้วว่า เราคือโรงแรมขนาดเล็กที่ตั้งอยู่ทำเลทองของประเทศกรุงเทพ
นอกจากนี้เรายังซื้อและขายเฉพาะสินค้าที่ดีที่สุด แต่น่าเสียดายยิ่งใกล้ถึงวันกำหนดขายสินค้า คุณภาพของสินค้าก็จะลดลงอย่างต่อเนื่อง
ตอนนี้เรามีระบบที่ช่วยอัปเดตสินค้าคงคลังให้เรา มันถูกพัฒนาโดยโปรแกรมเมอร์ศิษย์เอกของพระอินทร์ ซึ่งโปรแกรมเมอร์คนนี้ได้ย้ายกลับไปอยู่กับพระอินทร์
เป็นการถาวรแล้ว เราจึงอยากให้คุณช่วยเพิ่มฟีเจอร์ใหม่เพื่อให้เราสามารถขายสินค้าประเภทใหม่ได้
ก่อนอื่นเราขอแนะนำการทำงานของระบบปัจจุบัน:
- สินค้าแต่ละชิ้นจะต้องขายภายในระยะเวลาที่กำหนดไว้ในค่า "SellIn" (มีหน่วยเป็น*วัน*)
- สินค้าแต่ละชิ้นจะระบุค่า "Quality" ที่สามารถบ่งชี้ถึงมูลค่าของสินค้า
- ระบบจะทำการคำนวนค่า "SellIn" และ "Quality" ของสินค้าทุกชิ้นในช่วงเวลาสุดท้ายของทุกวัน
ง่ายอะดิ, ใช่ป่ะ? สิ่งที่น่าสนใจมันอยู่ตรงนี้:
- เมื่อสินค้าเลยกำหนดขายไปแล้ว "Quality" ของสินค้าจะลดลงเป็นสองเท่าจากปกติ
- "Quality" ของสินค้าไม่มีทางติดลบได้
- คุณภาพของสินค้าประเภท "Aged Brie" จะเพิ่มสูงขึ้นตามระยะเวลา
- "Quality" มีค่าสูงสุดคือ 50
- สินค้าประเภท "Sulfuras" เป็นสินค้าในตำนานหายาก คุณภาพของสินค้าจะไม่ลดลงและไม่ได้มีไว้เพื่อขาย
- สินค้าประเภท "Backstage passes" คุณภาพของสินค้าเหมือนกันกับสินค้าประเภท aged brie
เพียงแต่หากใกล้ถึงวันแสดง 10 วันก่อนหน้าหรือน้อยกว่าคุณภาพของสินค้าประเภทนี้จะเพิ่มทีละ 2 และถ้าใกล้ถึงวันก่อนวันแสดง 5 วันหรือน้อยกว่าคุณภาพจะเพิ่มทีละ 3
อย่างไรก็ตามคุณภาพของสินค้าจะกลายเป็น 0 ทันทีหลังการแสดงจบลง
เมื่อเร็วๆ นี้เราพึ่งได้ลงนามกับผู้ผลิตสินค้าประเภทของขลังและของปลุกเสก
และเราต้องการที่จะเพิ่มความสามารถใหม่เข้าไปในระบบ:
- คุณภาพสินค้าประเภท "Conjured" จะเสื่อมลงเร็วกว่าสินค้าปกติถึงสองเท่าจากปกติ
คุณสามารถปรับปรุงแก้ไขได้ทุกอย่างภายในเมธอด UpdateQuality และสามารถเพิ่มโค้ดใหม่ได้เลย
ตราบใดที่ทุกอย่างยังคงทำงานได้ถูกต้อง อย่างไรก็ตามห้ามแก้ไขคลาส Item และคุณสมบัติของคลาส
เพราะมันถูกลงอาคมจากโปรแกรมเมอร์จอมขมังเวทย์ที่ไม่เชื่อในเรื่องการแบ่งปันความเป็นเจ้าของโค้ดร่วมกับผู้อื่น
(ถ้าคุณยังอยากจะแก้ไขทั้งเมธอด UpdateQuality และคุณสมบัติของคลาส Item เราก็จะ
นิมนต์หลวงปู่เค็มมาช่วยคุ้มกันคุณ)
ย้ำอีกครั้งหนึ่ง, คุณภาพของสินค้ามีค่าสูงสุดคือ 50
อย่างไรก็ตามสินค้าประเภท "Sulfuras" เป็นสินค้าหายากในตำนานมีค่า Quality เป็น 80 เสมอไม่เปลี่ยนแปลง.

View File

@ -1,6 +1,11 @@
# Group 2 Gilded Rose Refactoring Kata
# Group 2 Gilded Rose Refactoring Kata
#### SWE6733 - Emerging Software Engineering Processes - Dr. Reza Parizi
#### **Group 2:**
Matt Decker
Devika Kandel Neupane
Ifeanyi Okoye
Cameron Mitchel Page
This Kata was originally created by Terry Hughes (http://twitter.com/TerryHughes). It is already on GitHub [here](https://github.com/NotMyself/GildedRose). See also [Bobby Johnson's description of the kata](http://iamnotmyself.com/2011/02/13/refactor-this-the-gilded-rose-kata/).