ਯਾਦ੍ਰਿਕ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ
ਵਿਕਾਸਕਾਂ ਲਈ ਯੂਨੀਕ ਅਤੇ ਰਚਨਾਤਮਕ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਬਣਾਉਣ ਲਈ ਯਾਦ੍ਰਿਕ ਵਿਸ਼ੇਸ਼ਣਾਂ ਅਤੇ ਨਾਂਵਾਂ ਨੂੰ ਜੋੜ ਕੇ ਜਨਰੇਟ ਕਰੋ। ਸਧਾਰਣ ਇੰਟਰਫੇਸ ਦੇ ਨਾਲ 'ਜਨਰੇਟ' ਬਟਨ ਅਤੇ ਆਸਾਨ ਕਲਿੱਪਬੋਰਡ ਪਹੁੰਚ ਲਈ 'ਕਾਪੀ' ਬਟਨ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ।
ਰੈਂਡਮ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ
ਇਸ ਟੂਲ ਬਾਰੇ
ਇਹ ਟੂਲ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਪ੍ਰੋਜੈਕਟ ਦੇ ਨਾਮ ਬਣਾਉਂਦਾ ਹੈ ਜੋ ਤਕਨੀਕੀ ਉਦੇਸ਼ ਜਾਂ ਸਟੈਕ ਨੂੰ ਸਾਫ਼ ਦਿਖਾਉਂਦੇ ਹਨ। ਤੁਸੀਂ ਬਣਾਉਣ ਲਈ ਨਾਮਾਂ ਦੀ ਗਿਣਤੀ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਵਿਕਲਪਿਕ ਤੌਰ 'ਤੇ ਕਸਟਮ ਪੂਰਵਾਂ ਜਾਂ ਪਿੱਛੋਂ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ। ਨਾਮ ਤਕਨੀਕੀ ਪ੍ਰੋਜੈਕਟ ਦੇ ਨਾਮਕਰਨ ਦੇ ਸਿਧਾਂਤਾਂ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤੇ ਗਏ ਹਨ।
ਦਸਤਾਵੇਜ਼ੀਕਰਣ
ਵਿਕਲਪਿਕ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਵਿਕਾਸਕਾਂ ਲਈ
ਵਿਕਾਸਕਾਂ ਲਈ ਰੈਂਡਮ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਇੱਕ ਟੂਲ ਹੈ ਜੋ ਵਿਕਾਸਕਾਂ ਨੂੰ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਵੇਰਵਾ ਦੇਣ ਵਾਲੇ, ਤਕਨੀਕੀ-ਕੇਂਦਰਿਤ ਨਾਮ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਤਕਨੀਕੀ-ਵਿਸ਼ੇਸ਼ ਸ਼ਬਦਾਂ ਨੂੰ ਕਾਰਜਕਾਰੀ ਵਰਣਨਕਾਰਾਂ ਨਾਲ ਜੋੜ ਕੇ, ਇਹ ਜਨਰੇਟਰ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਪੈਦਾ ਕਰਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਵਿਕਾਸ ਪ੍ਰੋਜੈਕਟਾਂ ਦੇ ਤਕਨੀਕੀ ਉਦੇਸ਼ ਅਤੇ ਸਟੈਕ ਨੂੰ ਸਾਫ਼ ਸੂਚਿਤ ਕਰਦਾ ਹੈ।
ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ
ਜਨਰੇਟਰ ਕਈ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਸੂਚੀਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ: ਇੱਕ ਤਕਨੀਕੀ ਪੂਰਵ-ਨਾਮਾਂ (ਫਰੇਮਵਰਕ, ਭਾਸ਼ਾਵਾਂ, ਪਲੇਟਫਾਰਮ), ਦੂਜਾ ਤਕਨੀਕੀ ਭੂਮਿਕਾਵਾਂ ਜਾਂ ਉਦੇਸ਼ਾਂ ਦੀ ਸੂਚੀ, ਅਤੇ ਵਿਕਲਪਕ ਵਰਨਕ ਮੋਡੀਫਾਇਰ। ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਨਾਮ ਬਣਾਉਂਦੇ ਹੋ, ਐਪਲੀਕੇਸ਼ਨ ਹੇਠਾਂ ਦਿੱਤੇ ਕਦਮਾਂ ਨੂੰ ਅੰਜਾਮ ਦਿੰਦਾ ਹੈ:
- ਤੁਸੀਂ ਦਿੱਤਾ ਹੋਇਆ ਕੋਈ ਵੀ ਕਸਟਮ ਪੂਰਵ-ਨਾਮ ਲਗੂ ਕਰਦਾ ਹੈ
- ਇੱਕ ਤਕਨੀਕੀ ਭਾਗ (ਜਿਵੇਂ ਕਿ React, Angular, Node, ਆਦਿ) ਚੁਣਦਾ ਹੈ
- ਵਿਕਲਪਕ ਤਕਨੀਕੀ ਵਰਣਕ (Distributed, Scalable, ਆਦਿ) ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ
- ਇੱਕ ਕਾਰਜਕਾਰੀ ਉਦੇਸ਼ (Frontend, Backend, API, Service, ਆਦਿ) ਜੋੜਦਾ ਹੈ
- ਤੁਸੀਂ ਦਿੱਤਾ ਹੋਇਆ ਕੋਈ ਵੀ ਕਸਟਮ ਸਫ਼ਿਕਸ ਲਗੂ ਕਰਦਾ ਹੈ
- ਇਹ ਤੱਤਾਂ ਨੂੰ ਜੋੜ ਕੇ ਇੱਕ ਸਮਰਥ, ਵੇਰਵਾ ਦੇਣ ਵਾਲਾ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਬਣਾਉਂਦਾ ਹੈ
ਇਹ ਤਰੀਕਾ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਬਣਾਏ ਗਏ ਨਾਮ ਸਾਫਟਵੇਅਰ ਵਿਕਾਸ ਨਾਲ ਤੁਰੰਤ ਸਬੰਧਿਤ ਹਨ ਅਤੇ ਤਕਨੀਕੀ ਸਟੈਕ ਅਤੇ ਉਦੇਸ਼ ਨੂੰ ਸਾਫ਼ ਸੂਚਿਤ ਕਰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਟੀਮ ਦੇ ਮੈਂਬਰਾਂ ਲਈ ਇਹ ਸਮਝਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿ ਇੱਕ ਪ੍ਰੋਜੈਕਟ ਆਪਣੇ ਨਾਮ ਤੋਂ ਕੀ ਬਾਰੇ ਹੈ।
ਜਨਰੇਟਰ ਇੱਕ ਧਿਆਨ ਨਾਲ ਚੁਣੀ ਗਈ ਤਕਨੀਕੀ ਸ਼ਬਦਾਂ ਦੀ ਸੂਚੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਜੋ ਵਿਕਾਸਕ ਸਮੁਦਾਇ ਵਿੱਚ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਪਛਾਣੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਨਾਮ ਵੱਖ-ਵੱਖ ਟੀਮਾਂ ਅਤੇ ਸੰਗਠਨਾਂ ਵਿੱਚ ਅਰਥਪੂਰਨ ਹਨ।
ਵਰਤੋਂ ਦੇ ਕੇਸ
ਵਿਕਾਸਕਾਂ ਲਈ ਰੈਂਡਮ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਕੀਮਤੀ ਹੈ:
- ਨਵਾਂ ਪ੍ਰੋਜੈਕਟ ਸ਼ੁਰੂਆਤ: ਨਵੇਂ ਵਿਕਾਸ ਪ੍ਰੋਜੈਕਟ ਸ਼ੁਰੂ ਕਰਨ ਵੇਲੇ ਇੱਕ ਵੇਰਵਾ ਦੇਣ ਵਾਲਾ ਨਾਮ ਤੇਜ਼ੀ ਨਾਲ ਬਣਾਉਣਾ
- ਮਾਈਕਰੋਸਰਵਿਸ ਆਰਕੀਟੈਕਚਰ: ਮਾਈਕਰੋਸਰਵਿਸ ਈਕੋਸਿਸਟਮ ਵਿੱਚ ਕਈ ਸੇਵਾਵਾਂ ਲਈ ਸੰਗਤ ਨਾਮਕਰਨ ਪਰੰਪਰਾਵਾਂ ਬਣਾਉਣਾ
- ਰੇਪੋਜ਼ਿਟਰੀ ਸੰਗਠਨ: ਕੋਡ ਰੇਪੋਜ਼ਿਟਰੀਆਂ ਲਈ ਸਾਫ਼ ਨਾਮਕਰਨ ਨੀਤੀਆਂ ਸਥਾਪਿਤ ਕਰਨਾ
- ਵਿਕਾਸ ਵਾਤਾਵਰਣ: ਇੱਕ ਹੀ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣ ਜਾਂ ਉਦਾਹਰਣਾਂ ਵਿੱਚ ਅੰਤਰ ਕਰਨਾ
- ਕੰਪੋਨੈਂਟ ਲਾਇਬ੍ਰੇਰੀਆਂ: ਤਕਨੀਕੀ ਉਦੇਸ਼ ਦੇ ਆਧਾਰ 'ਤੇ ਦੁਬਾਰਾ ਵਰਤਣ ਯੋਗ ਕੰਪੋਨੈਂਟ ਜਾਂ ਮੋਡੀਊਲਾਂ ਨੂੰ ਨਾਮ ਦੇਣਾ
ਵਿਕਲਪ
ਜਦੋਂ ਕਿ ਇਹ ਜਨਰੇਟਰ ਤਕਨੀਕੀ ਸਾਫ਼ਾਈ 'ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਹੈ, ਪ੍ਰੋਜੈਕਟਾਂ ਦੇ ਨਾਮਕਰਨ ਲਈ ਕਈ ਵਿਕਲਪਿਕ ਪਹੁੰਚਾਂ ਹਨ:
-
ਸਮਾਂਤਰੀ ਸੰਸਕਰਨ ਨਾਲ ਉਦੇਸ਼: ਸੰਸਕਰਨ ਨੰਬਰਾਂ ਅਤੇ ਉਦੇਸ਼ ਸੰਕੇਤਕਾਂ (ਜਿਵੇਂ ਕਿ auth-service-v2, data-processor-v1) ਦੇ ਸੰਯੋਗ ਦੀ ਵਰਤੋਂ ਕਰਨਾ
-
ਡੋਮੇਨ-ਚਲਿਤ ਨਾਮਕਰਨ: ਤਕਨੀਕੀ ਅਮਲ ਦੇ ਬਜਾਏ ਵਪਾਰ ਡੋਮੇਨ ਜਾਂ ਫੰਕਸ਼ਨ ਦੇ ਆਧਾਰ 'ਤੇ ਨਾਮ ਦੇਣਾ (ਜਿਵੇਂ ਕਿ PaymentProcessor, UserAuthentication)
-
ਸੰਗਠਨਾਤਮਕ ਪੂਰਵ-ਨਾਮਕਰਨ: ਉਦੇਸ਼ ਦੇ ਬਾਅਦ ਸੰਗਠਨ ਜਾਂ ਟੀਮ ਪੂਰਵ-ਨਾਮਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰਨਾ (ਜਿਵੇਂ ਕਿ team-payments-api, org-auth-service)
-
ਐਕਰੋਨਿਮ-ਆਧਾਰਿਤ ਨਾਮਕਰਨ: ਪ੍ਰੋਜੈਕਟ ਦੇ ਉਦੇਸ਼ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹੋਏ ਅਰਥਪੂਰਨ ਐਕਰੋਨਿਮ ਬਣਾਉਣਾ (ਜਿਵੇਂ ਕਿ CRUD ਲਈ Create-Read-Update-Delete Service)
-
ਸਮਾਂਤਰੀ ਨਾਮਕਰਨ: ਵਰਣਨਾਤਮਕ ਕ੍ਰਿਆਵਾਂ ਅਤੇ ਨਾਂ ਦਾ ਉਪਯੋਗ ਕਰਕੇ ਪ੍ਰੋਜੈਕਟ ਕੀ ਕਰਦਾ ਹੈ ਇਹ ਸਮਝਾਉਣਾ ਬਿਨਾਂ ਤਕਨੀਕੀ ਵੇਰਵਿਆਂ ਦੇ (ਜਿਵੇਂ ਕਿ DataCollector, UserManager)
ਇਹਨਾਂ ਵਿਕਲਪਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਹੋਰ ਉਚਿਤ ਹੋ ਸਕਦਾ ਹੈ:
- ਡੋਮੇਨ-ਚਲਿਤ ਨਾਮਕਰਨ ਗੈਰ-ਤਕਨੀਕੀ ਹਿੱਸੇਦਾਰਾਂ ਨਾਲ ਸੰਚਾਰ ਕਰਨ ਵੇਲੇ ਚੰਗਾ ਕੰਮ ਕਰਦਾ ਹੈ
- ਸੰਗਠਨਾਤਮਕ ਪੂਰਵ-ਨਾਮਕਰਨ ਵੱਡੇ ਉਦਯੋਗਾਂ ਵਿੱਚ ਬਹੁਤ ਸਾਰੀਆਂ ਟੀਮਾਂ ਲਈ ਲਾਭਦਾਇਕ ਹੈ
- ਐਕਰੋਨਿਮ-ਆਧਾਰਿਤ ਨਾਮਕਰਨ ਅੰਦਰੂਨੀ ਸੰਦਾਂ ਲਈ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੋ ਸਕਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਦੇ ਉਦੇਸ਼ ਬਹੁਤ ਸਮਝੇ ਜਾਂਦੇ ਹਨ
- ਸਮਾਂਤਰੀ ਨਾਮਕਰਨ ਉਸ ਵੇਲੇ ਮਦਦਗਾਰ ਹੈ ਜਦੋਂ ਵਪਾਰਕ ਫੰਕਸ਼ਨ ਲਾਗੂ ਕਰਨ ਦੇ ਵੇਰਵਿਆਂ ਤੋਂ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ
ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਦੇ ਸੰਦਰਭ, ਟਾਰਗਟ ਦਰਸ਼ਕਾਂ, ਅਤੇ ਲੰਬੇ ਸਮੇਂ ਦੇ ਲਕਸ਼ਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹੋਏ ਇਸ ਜਨਰੇਟਰ ਅਤੇ ਇਨ੍ਹਾਂ ਵਿਕਲਪਾਂ ਵਿੱਚੋਂ ਚੁਣਨ ਦੀ ਸੋਚ ਕਰੋ।
ਅਮਲ ਦੇ ਉਦਾਹਰਣ
ਇੱਥੇ ਵੱਖ-ਵੱਖ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਨੂੰ ਅਮਲ ਕਰਨ ਦੇ ਉਦਾਹਰਣ ਹਨ:
1' Excel VBA ਫੰਕਸ਼ਨ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਲਈ
2Function GenerateProjectName(Optional prefix As String = "", Optional suffix As String = "") As String
3 Dim techPrefixes As Variant
4 Dim techRoles As Variant
5 techPrefixes = Array("React", "Angular", "Vue", "Node", "Express", "Django", "Spring")
6 techRoles = Array("Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework")
7
8 Dim techPrefix As String
9 Dim techRole As String
10
11 techPrefix = techPrefixes(Int(Rnd() * UBound(techPrefixes)))
12 techRole = techRoles(Int(Rnd() * UBound(techRoles)))
13
14 If prefix <> "" Then
15 If Not prefix Like "*-" Then prefix = prefix & "-"
16 End If
17
18 If suffix <> "" Then
19 If Not suffix Like "-*" Then suffix = "-" & suffix
20 End If
21
22 GenerateProjectName = prefix & techPrefix & "-" & techRole & suffix
23End Function
24
25' Example usage in a cell:
26' =GenerateProjectName("my", "app")
27
1# R ਫੰਕਸ਼ਨ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਲਈ
2generate_project_name <- function(prefix = "", suffix = "") {
3 tech_prefixes <- c("React", "Angular", "Vue", "Node", "Express", "Django", "Spring")
4 tech_roles <- c("Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework")
5
6 tech_prefix <- sample(tech_prefixes, 1)
7 tech_role <- sample(tech_roles, 1)
8
9 if (prefix != "" && !endsWith(prefix, "-")) {
10 prefix <- paste0(prefix, "-")
11 }
12
13 if (suffix != "" && !startsWith(suffix, "-")) {
14 suffix <- paste0("-", suffix)
15 }
16
17 paste0(prefix, tech_prefix, "-", tech_role, suffix)
18}
19
20# Example usage
21print(generate_project_name("my", "app"))
22
1% MATLAB ਫੰਕਸ਼ਨ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਲਈ
2function projectName = generateProjectName(prefix, suffix)
3 if nargin < 1
4 prefix = "";
5 end
6 if nargin < 2
7 suffix = "";
8 end
9
10 techPrefixes = {'React', 'Angular', 'Vue', 'Node', 'Express', 'Django', 'Spring'};
11 techRoles = {'Frontend', 'Backend', 'API', 'Service', 'Microservice', 'Engine', 'Framework'};
12
13 techPrefix = techPrefixes{randi(length(techPrefixes))};
14 techRole = techRoles{randi(length(techRoles))};
15
16 if ~isempty(prefix) && ~endsWith(prefix, "-")
17 prefix = prefix + "-";
18 end
19
20 if ~isempty(suffix) && ~startsWith(suffix, "-")
21 suffix = "-" + suffix;
22 end
23
24 projectName = prefix + techPrefix + "-" + techRole + suffix;
25end
26
27% Example usage
28disp(generateProjectName("my", "app"));
29
1import random
2
3def generate_project_name(prefix="", suffix=""):
4 tech_prefixes = ["React", "Angular", "Vue", "Node", "Express", "Django", "Spring"]
5 tech_roles = ["Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"]
6
7 tech_prefix = random.choice(tech_prefixes)
8 tech_role = random.choice(tech_roles)
9
10 if prefix and not prefix.endswith("-"):
11 prefix += "-"
12
13 if suffix and not suffix.startswith("-"):
14 suffix = "-" + suffix
15
16 return f"{prefix}{tech_prefix}-{tech_role}{suffix}"
17
18# Example usage
19print(generate_project_name("my", "app"))
20
1function generateProjectName(prefix = "", suffix = "") {
2 const techPrefixes = ["React", "Angular", "Vue", "Node", "Express", "Django", "Spring"];
3 const techRoles = ["Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"];
4
5 const techPrefix = techPrefixes[Math.floor(Math.random() * techPrefixes.length)];
6 const techRole = techRoles[Math.floor(Math.random() * techRoles.length)];
7
8 if (prefix && !prefix.endsWith("-")) {
9 prefix += "-";
10 }
11
12 if (suffix && !suffix.startsWith("-")) {
13 suffix = "-" + suffix;
14 }
15
16 return `${prefix}${techPrefix}-${techRole}${suffix}`;
17}
18
19// Example usage
20console.log(generateProjectName("my", "app"));
21
1import java.util.Random;
2
3public class ProjectNameGenerator {
4 private static final String[] TECH_PREFIXES = {"React", "Angular", "Vue", "Node", "Express", "Django", "Spring"};
5 private static final String[] TECH_ROLES = {"Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"};
6 private static final Random RANDOM = new Random();
7
8 public static String generateProjectName(String prefix, String suffix) {
9 String techPrefix = TECH_PREFIXES[RANDOM.nextInt(TECH_PREFIXES.length)];
10 String techRole = TECH_ROLES[RANDOM.nextInt(TECH_ROLES.length)];
11
12 if (prefix != null && !prefix.isEmpty() && !prefix.endsWith("-")) {
13 prefix += "-";
14 }
15
16 if (suffix != null && !suffix.isEmpty() && !suffix.startsWith("-")) {
17 suffix = "-" + suffix;
18 }
19
20 return prefix + techPrefix + "-" + techRole + suffix;
21 }
22
23 public static void main(String[] args) {
24 System.out.println(generateProjectName("my", "app"));
25 }
26}
27
1#include <iostream>
2#include <vector>
3#include <string>
4#include <random>
5#include <chrono>
6
7std::string generateProjectName(const std::string& prefix = "", const std::string& suffix = "") {
8 std::vector<std::string> techPrefixes = {"React", "Angular", "Vue", "Node", "Express", "Django", "Spring"};
9 std::vector<std::string> techRoles = {"Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"};
10
11 unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
12 std::default_random_engine generator(seed);
13
14 std::uniform_int_distribution<int> prefixDist(0, techPrefixes.size() - 1);
15 std::uniform_int_distribution<int> roleDist(0, techRoles.size() - 1);
16
17 std::string techPrefix = techPrefixes[prefixDist(generator)];
18 std::string techRole = techRoles[roleDist(generator)];
19
20 std::string finalPrefix = prefix;
21 if (!finalPrefix.empty() && !finalPrefix.back() != '-') {
22 finalPrefix += "-";
23 }
24
25 std::string finalSuffix = suffix;
26 if (!finalSuffix.empty() && !finalSuffix.front() != '-') {
27 finalSuffix = "-" + finalSuffix;
28 }
29
30 return finalPrefix + techPrefix + "-" + techRole + finalSuffix;
31}
32
33int main() {
34 std::cout << generateProjectName("my", "app") << std::endl;
35 return 0;
36}
37
1using System;
2
3class ProjectNameGenerator
4{
5 static readonly string[] TechPrefixes = { "React", "Angular", "Vue", "Node", "Express", "Django", "Spring" };
6 static readonly string[] TechRoles = { "Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework" };
7 static readonly Random Random = new Random();
8
9 static string GenerateProjectName(string prefix = "", string suffix = "")
10 {
11 string techPrefix = TechPrefixes[Random.Next(TechPrefixes.Length)];
12 string techRole = TechRoles[Random.Next(TechRoles.Length)];
13
14 if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith("-"))
15 {
16 prefix += "-";
17 }
18
19 if (!string.IsNullOrEmpty(suffix) && !suffix.StartsWith("-"))
20 {
21 suffix = "-" + suffix;
22 }
23
24 return $"{prefix}{techPrefix}-{techRole}{suffix}";
25 }
26
27 static void Main()
28 {
29 Console.WriteLine(GenerateProjectName("my", "app"));
30 }
31}
32
1class ProjectNameGenerator
2 TECH_PREFIXES = %w[React Angular Vue Node Express Django Spring]
3 TECH_ROLES = %w[Frontend Backend API Service Microservice Engine Framework]
4
5 def self.generate(prefix = "", suffix = "")
6 tech_prefix = TECH_PREFIXES.sample
7 tech_role = TECH_ROLES.sample
8
9 prefix += "-" if !prefix.empty? && !prefix.end_with?("-")
10 suffix = "-" + suffix if !suffix.empty? && !suffix.start_with?("-")
11
12 "#{prefix}#{tech_prefix}-#{tech_role}#{suffix}"
13 end
14end
15
16# Example usage
17puts ProjectNameGenerator.generate("my", "app")
18
1package main
2
3import (
4 "fmt"
5 "math/rand"
6 "strings"
7 "time"
8)
9
10var techPrefixes = []string{"React", "Angular", "Vue", "Node", "Express", "Django", "Spring"}
11var techRoles = []string{"Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"}
12
13func generateProjectName(prefix, suffix string) string {
14 rand.Seed(time.Now().UnixNano())
15
16 techPrefix := techPrefixes[rand.Intn(len(techPrefixes))]
17 techRole := techRoles[rand.Intn(len(techRoles))]
18
19 if prefix != "" && !strings.HasSuffix(prefix, "-") {
20 prefix += "-"
21 }
22
23 if suffix != "" && !strings.HasPrefix(suffix, "-") {
24 suffix = "-" + suffix
25 }
26
27 return prefix + techPrefix + "-" + techRole + suffix
28}
29
30func main() {
31 fmt.Println(generateProjectName("my", "app"))
32}
33
1import Foundation
2
3struct ProjectNameGenerator {
4 static let techPrefixes = ["React", "Angular", "Vue", "Node", "Express", "Django", "Spring"]
5 static let techRoles = ["Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"]
6
7 static func generate(prefix: String = "", suffix: String = "") -> String {
8 guard let techPrefix = techPrefixes.randomElement(),
9 let techRole = techRoles.randomElement() else {
10 return "Unknown-Project"
11 }
12
13 var finalPrefix = prefix
14 if !finalPrefix.isEmpty && !finalPrefix.hasSuffix("-") {
15 finalPrefix += "-"
16 }
17
18 var finalSuffix = suffix
19 if !finalSuffix.isEmpty && !finalSuffix.hasPrefix("-") {
20 finalSuffix = "-" + finalSuffix
21 }
22
23 return "\(finalPrefix)\(techPrefix)-\(techRole)\(finalSuffix)"
24 }
25}
26
27// Example usage
28print(ProjectNameGenerator.generate(prefix: "my", suffix: "app"))
29
1use rand::seq::SliceRandom;
2
3fn generate_project_name(prefix: &str, suffix: &str) -> String {
4 let tech_prefixes = vec!["React", "Angular", "Vue", "Node", "Express", "Django", "Spring"];
5 let tech_roles = vec!["Frontend", "Backend", "API", "Service", "Microservice", "Engine", "Framework"];
6
7 let mut rng = rand::thread_rng();
8
9 let tech_prefix = tech_prefixes.choose(&mut rng).unwrap_or(&"Unknown");
10 let tech_role = tech_roles.choose(&mut rng).unwrap_or(&"Project");
11
12 let mut final_prefix = prefix.to_string();
13 if !final_prefix.is_empty() && !final_prefix.ends_with("-") {
14 final_prefix.push_str("-");
15 }
16
17 let mut final_suffix = suffix.to_string();
18 if !final_suffix.is_empty() && !final_suffix.starts_with("-") {
19 final_suffix = format!("-{}", final_suffix);
20 }
21
22 format!("{}{}-{}{}", final_prefix, tech_prefix, tech_role, final_suffix)
23}
24
25fn main() {
26 println!("{}", generate_project_name("my", "app"));
27}
28
1<?php
2
3class ProjectNameGenerator {
4 private static $techPrefixes = ['React', 'Angular', 'Vue', 'Node', 'Express', 'Django', 'Spring'];
5 private static $techRoles = ['Frontend', 'Backend', 'API', 'Service', 'Microservice', 'Engine', 'Framework'];
6
7 public static function generate($prefix = '', $suffix = '') {
8 $techPrefix = self::$techPrefixes[array_rand(self::$techPrefixes)];
9 $techRole = self::$techRoles[array_rand(self::$techRoles)];
10
11 if ($prefix !== '' && !str_ends_with($prefix, '-')) {
12 $prefix .= '-';
13 }
14
15 if ($suffix !== '' && !str_starts_with($suffix, '-')) {
16 $suffix = '-' . $suffix;
17 }
18
19 return $prefix . $techPrefix . '-' . $techRole . $suffix;
20 }
21}
22
23// Example usage
24echo ProjectNameGenerator::generate('my', 'app');
25
ਇਹ ਉਦਾਹਰਣ ਵੱਖ-ਵੱਖ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਇੱਕ ਬੁਨਿਆਦੀ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਜਨਰੇਟਰ ਨੂੰ ਅਮਲ ਕਰਨ ਦਾ ਤਰੀਕਾ ਦਿਖਾਉਂਦੀਆਂ ਹਨ। ਹਰ ਇੱਕ ਅਮਲ ਤਕਨੀਕੀ ਪੂਰਵ-ਨਾਮਾਂ ਨੂੰ ਕਾਰਜਕਾਰੀ ਭੂਮਿਕਾਵਾਂ ਨਾਲ ਮਿਲਾ ਕੇ ਅਰਥਪੂਰਨ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਬਣਾਉਣ ਦੇ ਇੱਕ ਹੀ ਸਿਧਾਂਤ ਨੂੰ ਫੋਲੋ ਕਰਦਾ ਹੈ।
ਇਤਿਹਾਸ
ਪ੍ਰੋਜੈਕਟ ਨਾਮਕਰਨ ਦਾ ਵਿਚਾਰ ਸਾਫਟਵੇਅਰ ਵਿਕਾਸ ਖੇਤਰ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਤੌਰ 'ਤੇ ਵਿਕਸਿਤ ਹੋਇਆ ਹੈ:
-
ਪੁਰਾਣੀ ਕੰਪਿਊਟਿੰਗ ਯੁਗ (1950-1970): ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਅਕਸਰ ਫਾਈਲ ਸਿਸਟਮ ਦੀਆਂ ਸੀਮਾਵਾਂ ਦੁਆਰਾ ਸੀਮਿਤ ਹੁੰਦੇ ਸਨ, ਜਿਸ ਨਾਲ ਗੁੰਝਲਦਾਰ ਸੰਕੁਚਿਤ ਨਾਮਾਂ ਅਤੇ ਅੰਕੜੇ ਕੋਡਾਂ ਦੀ ਪੈਦਾ ਹੋਈ।
-
ਮੁੱਖ ਫਰੇਮ ਅਤੇ ਉਦਯੋਗਿਕ ਸਿਸਟਮ (1970-1980): ਸੰਗਠਨਾਤਮਕ ਕੋਡਾਂ, ਪ੍ਰੋਜੈਕਟ ਕਿਸਮਾਂ, ਅਤੇ ਲੜੀਬੱਧ ਪਛਾਣਕਰਾਂ ਨਾਲ ਸੰਗਠਿਤ ਨਾਮਕਰਨ ਪਰੰਪਰਾਵਾਂ ਉਭਰੀਆਂ।
-
ਖੁੱਲਾ ਸਰੋਤ ਆੰਦੋਲਨ (1990): ਰਚਨਾਤਮਕ, ਯਾਦਗਾਰ ਪ੍ਰੋਜੈਕਟ ਨਾਮ ਪ੍ਰਸਿੱਧ ਹੋ ਗਏ (ਜਿਵੇਂ ਕਿ Apache, Linux, Mozilla) ਤਾਂ ਜੋ ਪ੍ਰੋਜੈਕਟਾਂ ਨੂੰ ਖੜ੍ਹਾ ਕਰਨ ਵਿੱਚ ਮਦਦ ਮਿਲੇ।
-
ਵੈੱਬ 2.0 ਯੁਗ (2000): ਸਟਾਰਟਅਪਾਂ ਨੇ ਯੂਨੀਕ, ਅਕਸਰ ਵਿਅੰਗੀ ਨਾਮਾਂ ਨੂੰ ਗਲੇ ਲਗਾਇਆ (ਜਿਵੇਂ ਕਿ Twitter, Flickr) ਜੋ ਯਾਦਗਾਰ ਸਨ ਪਰ ਜ਼ਰੂਰੀ ਨਹੀਂ ਸੀ ਕਿ ਵੇਰਵਾ ਦੇਣ ਵਾਲੇ ਹੋਣ।
-
ਮਾਈਕਰੋਸਰਵਿਸ ਆਰਕੀਟੈਕਚਰ (2010-ਵਰਤਮਾਨ): ਜਿਵੇਂ ਜ਼ਿੰਦਾ ਸਿਸਟਮ ਵੰਡੇ ਗਏ, ਸਾਫ਼, ਕਾਰਜਕਾਰੀ ਨਾਮਕਰਨ ਦੀ ਲੋੜ ਵਾਪਸ ਆਈ। ਤਕਨੀਕੀ ਵਰਣਕਾਂ ਦਾ ਸ਼ਾਮਲ ਕਰਨਾ ਜਟਿਲ ਸੇਵਾਵਾਂ ਦੇ ਈਕੋਸਿਸਟਮਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਜ਼ਰੂਰੀ ਹੋ ਗਿਆ।
-
DevOps ਅਤੇ CI/CD (ਵਰਤਮਾਨ): ਆਟੋਮੇਟਿਡ ਪਾਈਪਲਾਈਨਾਂ ਅਤੇ ਇੰਫਰਾਸਟਰਕਚਰ ਦੇ ਕੋਡ ਦੇ ਨਾਲ, ਵੇਰਵਾ ਦੇਣ ਵਾਲੇ ਨਾਮ ਜੋ ਉਦੇਸ਼ ਅਤੇ ਤਕਨੀਕੀ ਸਟੈਕ ਨੂੰ ਦਰਸਾਉਂਦੇ ਹਨ, ਰਖਰਖਾਵ ਲਈ ਬਹੁਤ ਜਰੂਰੀ ਹੋ ਗਏ ਹਨ।
ਅੱਜ ਦੇ ਵਿਕਾਸ-ਕੇਂਦਰਿਤ ਨਾਮਕਰਨ ਦੀਆਂ ਪਰੰਪਰਾਵਾਂ ਵਧ ਰਹੀਆਂ ਤਕਨੀਕੀ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਸਾਫ਼ਾਈ ਦੀ ਲੋੜ ਨੂੰ ਦਰਸਾਉਂਦੀਆਂ ਹਨ। ਨਾਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਜੋ ਸਾਫ਼ ਸੂਚਿਤ ਕਰਦੇ ਹਨ ਕਿ ਤਕਨੀਕੀ ਸਟੈਕ ਅਤੇ ਉਦੇਸ਼ ਕੀ ਹਨ, ਟੀਮਾਂ ਆਪਣੇ ਪ੍ਰੋਜੈਕਟਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਦੇ ਵਧਦੇ ਸੰਗ੍ਰਹਿ ਨੂੰ ਸਮਝਣ, ਪ੍ਰਬੰਧਨ, ਅਤੇ ਰੱਖਣ ਲਈ ਆਸਾਨੀ ਨਾਲ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਹਵਾਲੇ
-
ਫਾਵਲਰ, ਐਮ. (2014). ਮਾਈਕਰੋਸਰਵਿਸ: ਪਰਿਭਾਸ਼ਾ, ਸਿਧਾਂਤ, ਅਤੇ ਲਾਭ। ਪ੍ਰਾਪਤ ਕੀਤਾ ਗਿਆ https://martinfowler.com/articles/microservices.html
-
ਹੰਬਲ, ਜੇ., & ਫਾਰਲੀ, ਡੀ. (2010). ਕਨਟੀਨਿਊਅਸ ਡਿਲਿਵਰੀ: ਭਰੋਸੇਯੋਗ ਸਾਫਟਵੇਅਰ ਰਿਲੀਜ਼ਾਂ ਬਿਲਡ, ਟੈਸਟ, ਅਤੇ ਡਿਪਲੋਇਮੈਂਟ ਆਟੋਮੇਸ਼ਨ ਰਾਹੀਂ। ਐਡਿਸਨ-ਵੈਸਲੀ ਪ੍ਰੋਫੈਸ਼ਨਲ।
-
ਨਿਊਮੈਨ, ਐਸ. (2015). ਮਾਈਕਰੋਸਰਵਿਸ ਬਣਾਉਣਾ: ਬਾਰੀਕ ਸਿਸਟਮਾਂ ਦੀ ਡਿਜ਼ਾਈਨ। ਓ'ਰੈਲੀ ਮੀਡੀਆ।
-
ਐਵਾਂਸ, ਈ. (2003). ਡੋਮੇਨ-ਚਲਿਤ ਡਿਜ਼ਾਈਨ: ਸਾਫਟਵੇਅਰ ਦੇ ਦਿਲ ਵਿੱਚ ਜਟਿਲਤਾ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ। ਐਡਿਸਨ-ਵੈਸਲੀ ਪ੍ਰੋਫੈਸ਼ਨਲ।
-
ਨਾਦਰੇਇਸ਼ਵਿਲੀ, ਆਈ., ਮਿਤਰਾ, ਆਰ., ਮੈਕਲਾਰਟੀ, ਐਮ., & ਅਮੁੰਡਸਨ, ਐਮ. (2016). ਮਾਈਕਰੋਸਰਵਿਸ ਆਰਕੀਟੈਕਚਰ: ਸਿਧਾਂਤਾਂ, ਅਭਿਆਸਾਂ, ਅਤੇ ਸੰਸਕ੍ਰਿਤੀ ਨੂੰ ਮਿਲਾਉਣਾ। ਓ'ਰੈਲੀ ਮੀਡੀਆ।
ਪ੍ਰਤਿਕ੍ਰਿਆ
ਇਸ ਟੂਲ ਬਾਰੇ ਫੀਡਬੈਕ ਦੇਣ ਲਈ ਫੀਡਬੈਕ ਟੋਸਟ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
ਸਬੰਧਿਤ ਸੰਦਾਰਬਾਰਾਂ
ਆਪਣੇ ਕਾਰਜ ਦੇ ਲਈ ਵਰਤਣ ਯੋਗ ਹੋਣ ਵਾਲੇ ਹੋਰ ਸੰਦੇਸ਼ ਦੀ ਖੋਜ ਕਰੋ