2016-06-27 2 views
1

를 나타내는 데 사용되어야 하는지를도 : 객체를 받아 등록 정보를 인라인I이 재귀 기능이 알고리즘 로직

function inline(o) { 
    return objEntries(o).reduce(function (result, item) { 
     var key = item[0]; 
     var val = item[1]; 

     if (val instanceof Object) { 
      objEntries(inline(val)).forEach(function (subItem) { 
       var subKey = subItem[0]; 
       var subVal = subItem[1]; 

       result[key + '.' + subKey] = subVal; 
      }); 
     } else { 
      result[key] = val; 
     } 
     return result; 
    }, {}); 
} 

function objEntries(obj) { 
    return Object.keys(obj).map(function (key) { 
     return [key, obj[key]]; 
    }); 
} 

한다. 예를 들어,이 :

var o = {some: {prop:5}} 

이된다 : 나는 그것을 시각적으로 작업을 어떻게 표현 할

var o = {"some.prop": 5}; 

. 어떤 다이어그램이나 표기법을 사용할 수 있습니까? 누군가 내가 요약 한 기능을 기반으로 작은 예제를 제공해 줄 수 있습니까?

+0

시퀀스 다이어그램 – Damirchi

+0

을 사용해야합니다. 질문에 대한 답변이 과학적 의견보다 많은 것으로 판명 된 것 같습니다. –

+0

@ 토마스 킬리언, 그렇지 않을 수도 있습니다. 다른 곳으로 물어볼 곳이 없었습니다. –

답변

2

그렇지 않습니다. UML은 추상화에 매우 좋습니다. 그러나 알고리즘에 이르면 아무 가치가 없습니다. 알고리즘을 제시하더라도 시퀀스 다이어그램과 단편을 사용하지 마십시오. UML 모델과 코드 사이에는 어떤 종류의 균열이 있습니다. UML과 연결하지 않는 것이 가장 좋습니다. 추상적으로 목표를 UML로 기술하고 나머지는 코더에 맡기는 것이 가장 좋은 방법입니다.

P. 나는 90 년대 그래픽 프로그래밍을 꿈꿔왔다. 우리는 3과 4GL을 가졌지 만 오늘날 실제로 무엇이 보입니까? 더 C와 같은 것들. Alf에게는 행운을 빈다. 그러나 그것은 또한 신선한 고양이 주스에서 끝날 것이다.

2

나는 Thomas에 동의하지 않습니다. Alf는 기능적, OO 및 병렬 처리가 기본적으로 구워진 UML을위한 새로운 프로그래밍 언어입니다. 액티비티 다이어그램을 생성합니다.

Alf를 사용하지 않더라도 활동은 스스로를 재귀 적으로 호출 할 수 있습니다. 활동 다이어그램은 Alf가 작성하는 것보다 그리기가 더 어렵습니다. Alf는 매우 작고 강력합니다.

2

이론적으로 활동 다이어그램은 알고리즘 논리를 나타낼 수 있습니다.

그러나 이것은 여전히 ​​일부 추상화 수준에서 수행되어야합니다. UML을 사용하여 각 코드 행을 문서화하는 것은 의미가 없으며 UML을 사용하여 프로그래밍을 끝내면 "UML 코드"를 "일반"코드로 변환하는 도구를 찾아야합니다 (또는 UML 컴파일러).