C-API double linked list standard

4 views
Skip to first unread message

Dario Rodriguez

unread,
Dec 22, 2011, 1:16:01 PM12/22/11
to safa-developers
Hola chicos,

Adjunto un ejemplo con algo de código para las listas doblemente enlazadas.

Habría que generar una lista estandarizada de operaciones para todas las listas doblemente enlazadas, de manera que después hagamos el template para BlackPerl, y podamos generar listas de todo tipo basados en el mismo template.

Safa usaría muchas listas así que esto que definimos es como un fundamento.

Como ahora vamos por la API en C, no se asusten de que la auditoría de código sea mucho más estricta. Prefiero que tengamos 1000 rechazos de la misma API para llegar a incorporarla, y gastar 1 mes en auditoría de código, y no recibir un reporte de Bug con ejecución de código remoto, y tener que corregirlo en ese escenario. Seguridad Proactiva es lo que más importa. Reactiva tiene cualquiera.

Fijense por favor los detalles de estilo del código en C. Los comentarios, los retornos de las funciónes, las asignaciónes, etc, e incluso comenten lo que no entiendan o no crean conveniente. Tratamos de tener un estándar y cumplirlo SIEMPRE.

Activen la visualización de caracteres especiales para detectar el uso de espacios en lugar de TABs, recuerden que usamos TABs. Creo que 4 espacios por TAB estarán bien (prefiero siempre tabular con 8 para evitar anidamiento, pero lo evitaremos con auditoría).

Creen el código de manera defensiva, pensando que si algo mal puede hacer el usuario, lo hará, bien o malintencionado. Si tienen dudas sobre cualquier especificación, CONSULTEN. No es bueno tener un ' char* ' si queremos un ' const char* ', no es bueno tener una función interna declarada en la tabla de símbolos, para eso se usa static. Consulten mil veces pero intenten que el producto final sea código de primera calidad: Funciones cortas, código limpio, estable, robusto, testing...

Se que muchos no estan acostumbrados, pero la mejor forma de acostumbrarse es meter la pata de todas las formas posibles. Así se reconocen los errores a la legua.

Mientras tanto, seguiremos trabajando para que los scripts nos sirvan, pero esta API y sus implementaciónes serán nuestro producto principal.

Saludos
--
Dario
c-api.zip

Dario Rodriguez

unread,
Dec 23, 2011, 8:16:33 AM12/23/11
to safa-developers
Algunas correcciones sobre el adjunto del mail anterior [diff -uN]. Es un patch del directorio completo, así que se puede aplicar con:

$ patch < 0e2631abc3ac0f7a10b46bb0e3ebd870a405a30c.patch

Sobre el mismo directorio

Saludos
--
Dario
0e2631abc3ac0f7a10b46bb0e3ebd870a405a30c.patch.gz

Nicolas Palumbo

unread,
Dec 23, 2011, 2:24:55 PM12/23/11
to safa-de...@googlegroups.com
Sobre estos linked list, habria que empezar a escribir las estructuras
de los distintos objetos,
sea con struct u algun formato de metadata. Quien quiere ir investigando eso?

De manera que una vez implementada la forma de leer y escribir cada
campo de los objetos, lo otro es simplemente implementar la logica.

Les parece bien disenar de esa manera, manejando la lectura escritura
de los objetos desde la api, y luego implementar el core sobre eso?

Saludos,
Nico

2011/12/23 Dario Rodriguez <soft....@gmail.com>:

> --
> --------------------
> Recibes esto porque estas suscrito a "safa-dcs" en GoogleGroups.
> Puedes enviar correo a: safa...@googlegroups.com
> Para desuscribirte, envia un correo a: safa-dcs+u...@googlegroups.com
> Mas info: http://groups.google.com/group/safa-dcs
> S.A.F.A. - More than just version controlling

Dario Rodriguez

unread,
Dec 24, 2011, 8:33:50 AM12/24/11
to safa-de...@googlegroups.com
Es precisamente la forma que considero una buena implementación, donde
existe una capa que conoce los archivos, y otra que solo conoce la
lógica. Faltaría definir algunas cosas, como la estructura de módulos.

De todas formas, para implementar los objetos de SAFA yo esperaría que
hagamos una estructura un poco más compleja, como un hash (arreglo de
pares clave/valor).

Saludos,
Dario

Reply all
Reply to author
Forward
0 new messages