# 12. Documentación

### Comentarios de calidad

* `README.md`
* (exp personal): mantenerse lejos del detalle

{% embed url="<https://project-awesome.org/matiassingers/awesome-readme>" %}

#### TODOs y FIXMEs

* TODO: algo que dejas incompleto a sabiendas
* FIXME: algo que puede causar una issue/bug
* (exp. personal): Poner el ID de la herramienta de ticketing
* (exp. personal): Dejar enlaces de la investigación que has hecho, en el futuro sabrás por donde tirar.

```javascript
// TODO LAM-2950
// Fix deprecated warning (error for storybook >= v7)
// @see https://storybook.js.org/docs/react/writing-stories/decorators#global-decorators
addDecorator(literalsDecorator);
```

```javascript
// FIXME LAM-3258
// <ScreenList /> depends on <ScreenCardController /> */
function ScreenList(props) {
```

### Comentarios de mala calidad

```javascript
/**
 * @param {itemId} itemId
 */
function getItemPrice(itemId) {}
```

```javascript
/**
 * fetch item name
 */
function getItemPrice(itemId) {}
```

#### Ejercicio: cómo comentarias esta función?

```javascript
function getFileInfoFromFolder(path) => {
  const files = fs.readdirSync(path, 'utf8');
  const response = [];
  for (let file of files) {
    const extension = path.extname(file);
    const fileSizeInBytes = fs.statSync(file).size;
    response.push({ name: file, extension, fileSizeInBytes });
  }
  return response;
}
```

### Documentación front: `storybook`

{% embed url="<https://storybook.js.org/>" %}

{% embed url="<https://storybook.js.org/addons/@storybook/addon-storyshots>" %}

{% file src="<https://2587136002-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FqvBskYj09PBRfB5OZV01%2Fuploads%2FgXBDXBH8ozMF9cq5l3Rw%2Fstorybook%20example.mov?alt=media&token=1546bcab-4631-4f8d-a384-461e8b9b8184>" %}
